packages feed

vulkan 3.15 → 3.16

raw patch · 627 files changed

+41393/−39104 lines, 627 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.16] - 2022-02-05+- Bump API version to v1.3.204+ ## [3.15] - 2022-01-14 - Bump API version to v1.2.203 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.15"+version: "3.16" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan.hs view
@@ -4,6 +4,7 @@                , module Vulkan.Core10                , module Vulkan.Core11                , module Vulkan.Core12+               , module Vulkan.Core13                , module Vulkan.Extensions                , module Vulkan.NamedType                , module Vulkan.SPIRVRequirements@@ -13,6 +14,7 @@ import Vulkan.Core10 import Vulkan.Core11 import Vulkan.Core12+import Vulkan.Core13 import Vulkan.Extensions import Vulkan.NamedType import Vulkan.SPIRVRequirements
src/Vulkan/CStruct/Extends.hs view
@@ -97,7 +97,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindShaderGroupIndirectCommandNV) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2) 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)@@ -105,14 +105,14 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionPropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferCopy)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferCopy2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferCopy2) import {-# SOURCE #-} Vulkan.Core10.Buffer (BufferCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (BufferDeviceAddressCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferDeviceAddressInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferImageCopy)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferImageCopy2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferImageCopy2) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (BufferMemoryBarrier)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (BufferMemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo) import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)@@ -129,9 +129,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferInheritanceInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CommandBufferSubmitInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (CommandBufferSubmitInfo) import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping) import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo)@@ -140,12 +140,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferToImageInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)@@ -163,11 +163,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationBufferCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationImageCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationMemoryAllocateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (DependencyInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorBufferInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorImageInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolSize) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetAllocateInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetLayoutBinding)@@ -178,7 +178,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (DescriptorSetVariableDescriptorCountLayoutSupport) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateEntry)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceBufferMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements) import {-# SOURCE #-} Vulkan.Core10.Device (DeviceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceDeviceMemoryReportCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (DeviceDiagnosticsConfigCreateInfoNV)@@ -191,13 +191,13 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupSubmitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupSwapchainCreateInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceImageMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceMemoryReportCallbackDataEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (DevicePrivateDataCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Device (DeviceQueueCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DispatchIndirectCommand)@@ -252,7 +252,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (FilterCubicImageViewImageFormatPropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_format_feature_flags2 (FormatProperties3KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentImageInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)@@ -271,10 +271,10 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageBlit2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageCopy)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageCopy2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2) import {-# SOURCE #-} Vulkan.Core10.Image (ImageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierExplicitCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierListCreateInfoEXT)@@ -284,12 +284,12 @@ import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (ImageFormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (ImageFormatProperties2) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (ImageMemoryBarrier)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (ImageMemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (ImageMemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (ImagePipeSurfaceCreateInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (ImagePlaneMemoryRequirementsInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageResolve2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageResolve2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)@@ -326,7 +326,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo) import {-# SOURCE #-} Vulkan.Core10.Memory (MemoryAllocateInfo) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (MemoryBarrier)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (MemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedRequirements) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryFdPropertiesKHR)@@ -397,7 +397,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)@@ -423,28 +423,28 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)@@ -461,7 +461,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)@@ -469,7 +469,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)@@ -498,36 +498,36 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceSparseImageFormatInfo2) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceSparseProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_tooling_info (PhysicalDeviceToolPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)@@ -539,11 +539,13 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (PipelineCacheHeaderVersionOne) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)@@ -554,8 +556,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedback)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDepthStencilStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo)@@ -577,11 +579,11 @@ import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineRasterizationStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PipelineRenderingCreateInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)@@ -600,7 +602,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimeGOOGLE) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimesInfoGOOGLE)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PrivateDataSlotCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (ProtectedSubmitInfo) import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PushConstantRange) import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)@@ -608,7 +610,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (QueryPoolPerformanceQueryCreateInfoINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (QueueFamilyGlobalPriorityPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (QueueFamilyProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (QueueFamilyProperties2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (RayTracingPipelineCreateInfoKHR)@@ -628,11 +630,11 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingAttachmentInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (SRTDataNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)@@ -649,7 +651,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SemaphoreSubmitInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (SetStateFlagsIndirectCommandNV)@@ -676,7 +678,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(..)) import {-# SOURCE #-} Vulkan.Core10.Queue (SubmitInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SubmitInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (SubpassDependency) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassDependency2)@@ -724,7 +726,7 @@ import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (WriteDescriptorSet) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlockEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (XYColorEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (XcbSurfaceCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)@@ -856,26 +858,26 @@   Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = ()   Extends BufferCreateInfo BufferDeviceAddressCreateInfoEXT = ()   Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = ()-  Extends BufferImageCopy2KHR CopyCommandTransformInfoQCOM = ()+  Extends BufferImageCopy2 CopyCommandTransformInfoQCOM = ()   Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = ()-  Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfoKHR = ()+  Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfo = ()   Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = ()   Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = ()-  Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()+  Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()   Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()   Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()-  Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfoEXT = ()+  Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = ()   Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoVALVE = ()   Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = ()   Extends DescriptorSetLayoutCreateInfo DescriptorSetLayoutBindingFlagsCreateInfo = ()   Extends DescriptorSetLayoutCreateInfo MutableDescriptorTypeCreateInfoVALVE = ()   Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = ()   Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()-  Extends DeviceCreateInfo DevicePrivateDataCreateInfoEXT = ()-  Extends DeviceCreateInfo PhysicalDevicePrivateDataFeaturesEXT = ()+  Extends DeviceCreateInfo DevicePrivateDataCreateInfo = ()+  Extends DeviceCreateInfo PhysicalDevicePrivateDataFeatures = ()   Extends DeviceCreateInfo (PhysicalDeviceFeatures2 '[]) = ()   Extends DeviceCreateInfo PhysicalDeviceVariablePointersFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceMultiviewFeatures = ()@@ -888,12 +890,12 @@   Extends DeviceCreateInfo PhysicalDeviceProtectedMemoryFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceBlendOperationAdvancedFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceMultiDrawFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceMaintenance4FeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeatures = ()+  Extends DeviceCreateInfo PhysicalDeviceMaintenance4Features = ()   Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = ()   Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = ()-  Extends DeviceCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceDeviceMemoryReportFeaturesEXT = ()   Extends DeviceCreateInfo DeviceDeviceMemoryReportCreateInfoEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDescriptorIndexingFeatures = ()@@ -932,7 +934,7 @@   Extends DeviceCreateInfo PhysicalDeviceBufferDeviceAddressFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceBufferDeviceAddressFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceImagelessFramebufferFeatures = ()-  Extends DeviceCreateInfo PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceTextureCompressionASTCHDRFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceYcbcrImageArraysFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDevicePerformanceQueryFeaturesKHR = ()@@ -945,13 +947,14 @@   Extends DeviceCreateInfo PhysicalDeviceSeparateDepthStencilLayoutsFeatures = ()   Extends DeviceCreateInfo PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ()-  Extends DeviceCreateInfo PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceShaderDemoteToHelperInvocationFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceTexelBufferAlignmentFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceSubgroupSizeControlFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceSubgroupSizeControlFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceLineRasterizationFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDevicePipelineCreationCacheControlFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDevicePipelineCreationCacheControlFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceVulkan11Features = ()   Extends DeviceCreateInfo PhysicalDeviceVulkan12Features = ()+  Extends DeviceCreateInfo PhysicalDeviceVulkan13Features = ()   Extends DeviceCreateInfo PhysicalDeviceCoherentMemoryFeaturesAMD = ()   Extends DeviceCreateInfo PhysicalDeviceCustomBorderColorFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()@@ -959,52 +962,52 @@   Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()-  Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()   Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()-  Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()   Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceSynchronization2FeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceSynchronization2Features = ()   Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceImageViewMinLodFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ()   Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = ()-  Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()+  Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()   Extends FenceCreateInfo ExportFenceCreateInfo = ()   Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()   Extends FormatProperties2 DrmFormatModifierPropertiesListEXT = ()-  Extends FormatProperties2 FormatProperties3KHR = ()+  Extends FormatProperties2 FormatProperties3 = ()   Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = ()   Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = ()   Extends GraphicsPipelineCreateInfo GraphicsPipelineShaderGroupsCreateInfoNV = ()   Extends GraphicsPipelineCreateInfo PipelineDiscardRectangleStateCreateInfoEXT = ()   Extends GraphicsPipelineCreateInfo PipelineRepresentativeFragmentTestStateCreateInfoNV = ()-  Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()+  Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()   Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()   Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateStateCreateInfoKHR = ()   Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateEnumStateCreateInfoNV = ()-  Extends GraphicsPipelineCreateInfo PipelineRenderingCreateInfoKHR = ()+  Extends GraphicsPipelineCreateInfo PipelineRenderingCreateInfo = ()   Extends GraphicsPipelineCreateInfo AttachmentSampleCountInfoAMD = ()   Extends GraphicsPipelineCreateInfo MultiviewPerViewAttributesInfoNVX = ()-  Extends ImageBlit2KHR CopyCommandTransformInfoQCOM = ()+  Extends ImageBlit2 CopyCommandTransformInfoQCOM = ()   Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = ()   Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = ()   Extends ImageCreateInfo ExternalMemoryImageCreateInfo = ()@@ -1021,7 +1024,7 @@   Extends ImageFormatProperties2 AndroidHardwareBufferUsageANDROID = ()   Extends ImageFormatProperties2 FilterCubicImageViewImageFormatPropertiesEXT = ()   Extends ImageMemoryBarrier SampleLocationsInfoEXT = ()-  Extends ImageMemoryBarrier2KHR SampleLocationsInfoEXT = ()+  Extends ImageMemoryBarrier2 SampleLocationsInfoEXT = ()   Extends ImageMemoryRequirementsInfo2 ImagePlaneMemoryRequirementsInfo = ()   Extends ImageViewCreateInfo ImageViewUsageCreateInfo = ()   Extends ImageViewCreateInfo SamplerYcbcrConversionInfo = ()@@ -1050,7 +1053,7 @@   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()   Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()-  Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePresentIdFeaturesKHR = ()@@ -1061,12 +1064,12 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceProtectedMemoryFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceBlendOperationAdvancedFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiDrawFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4FeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeatures = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDrawParametersFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloat16Int8Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceHostQueryResetFeatures = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceGlobalPriorityQueryFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceMemoryReportFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorIndexingFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceTimelineSemaphoreFeatures = ()@@ -1103,7 +1106,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceBufferDeviceAddressFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceBufferDeviceAddressFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceImagelessFramebufferFeatures = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceTextureCompressionASTCHDRFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrImageArraysFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePerformanceQueryFeaturesKHR = ()@@ -1116,44 +1119,45 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceSeparateDepthStencilLayoutsFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDemoteToHelperInvocationFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceTexelBufferAlignmentFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceSubgroupSizeControlFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceSubgroupSizeControlFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceLineRasterizationFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineCreationCacheControlFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineCreationCacheControlFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan11Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan12Features = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan13Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCoherentMemoryFeaturesAMD = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2FeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageViewMinLodFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = ()@@ -1177,9 +1181,9 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceSamplerFilterMinmaxProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceSampleLocationsPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceBlendOperationAdvancedPropertiesEXT = ()-  Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance3Properties = ()-  Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4PropertiesKHR = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4Properties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFloatControlsProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceExternalMemoryHostPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceConservativeRasterizationPropertiesEXT = ()@@ -1202,19 +1206,20 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePerformanceQueryPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderSMBuiltinsPropertiesNV = ()-  Extends PhysicalDeviceProperties2 PhysicalDeviceTexelBufferAlignmentPropertiesEXT = ()-  Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupSizeControlPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceTexelBufferAlignmentProperties = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupSizeControlProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceSubpassShadingPropertiesHUAWEI = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceLineRasterizationPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan11Properties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan12Properties = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan13Properties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceCustomBorderColorPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceRobustness2PropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()-  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductPropertiesKHR = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()@@ -1230,7 +1235,7 @@   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = ()   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = ()   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = ()-  Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = ()+  Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfo = ()   Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = ()   Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()   Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()@@ -1247,11 +1252,11 @@   Extends PresentInfoKHR PresentFrameTokenGGP = ()   Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = ()   Extends QueryPoolCreateInfo QueryPoolPerformanceQueryCreateInfoINTEL = ()-  Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesEXT = ()+  Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesKHR = ()   Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = ()   Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = ()-  Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfoEXT = ()-  Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfoEXT = ()+  Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfo = ()+  Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfo = ()   Extends RenderPassBeginInfo DeviceGroupRenderPassBeginInfo = ()   Extends RenderPassBeginInfo RenderPassSampleLocationsBeginInfoEXT = ()   Extends RenderPassBeginInfo RenderPassAttachmentBeginInfo = ()@@ -1260,10 +1265,10 @@   Extends RenderPassCreateInfo RenderPassInputAttachmentAspectCreateInfo = ()   Extends RenderPassCreateInfo RenderPassFragmentDensityMapCreateInfoEXT = ()   Extends RenderPassCreateInfo2 RenderPassFragmentDensityMapCreateInfoEXT = ()-  Extends RenderingInfoKHR DeviceGroupRenderPassBeginInfo = ()-  Extends RenderingInfoKHR RenderingFragmentShadingRateAttachmentInfoKHR = ()-  Extends RenderingInfoKHR RenderingFragmentDensityMapAttachmentInfoEXT = ()-  Extends RenderingInfoKHR MultiviewPerViewAttributesInfoNVX = ()+  Extends RenderingInfo DeviceGroupRenderPassBeginInfo = ()+  Extends RenderingInfo RenderingFragmentShadingRateAttachmentInfoKHR = ()+  Extends RenderingInfo RenderingFragmentDensityMapAttachmentInfoEXT = ()+  Extends RenderingInfo MultiviewPerViewAttributesInfoNVX = ()   Extends SamplerCreateInfo SamplerYcbcrConversionInfo = ()   Extends SamplerCreateInfo SamplerReductionModeCreateInfo = ()   Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()@@ -1280,10 +1285,10 @@   Extends SubmitInfo ProtectedSubmitInfo = ()   Extends SubmitInfo TimelineSemaphoreSubmitInfo = ()   Extends SubmitInfo PerformanceQuerySubmitInfoKHR = ()-  Extends SubmitInfo2KHR Win32KeyedMutexAcquireReleaseInfoNV = ()-  Extends SubmitInfo2KHR Win32KeyedMutexAcquireReleaseInfoKHR = ()-  Extends SubmitInfo2KHR PerformanceQuerySubmitInfoKHR = ()-  Extends SubpassDependency2 MemoryBarrier2KHR = ()+  Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoNV = ()+  Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoKHR = ()+  Extends SubmitInfo2 PerformanceQuerySubmitInfoKHR = ()+  Extends SubpassDependency2 MemoryBarrier2 = ()   Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = ()   Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = ()   Extends SubpassEndInfo SubpassFragmentDensityMapOffsetEndInfoQCOM = ()@@ -1297,7 +1302,7 @@   Extends SwapchainCreateInfoKHR ImageFormatListCreateInfo = ()   Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveWin32InfoEXT = ()-  Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlockEXT = ()+  Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = ()   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = ()   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = ()   Extends a b = TypeError (ShowType a :<>: Text " is not extended by " :<>: ShowType b)@@ -1416,8 +1421,8 @@   STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV -> go @ExportMemoryWin32HandleInfoNV   STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -> go @Win32KeyedMutexAcquireReleaseInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV-  STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT -> go @DevicePrivateDataCreateInfoEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT -> go @PhysicalDevicePrivateDataFeaturesEXT+  STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO -> go @DevicePrivateDataCreateInfo+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES -> go @PhysicalDevicePrivateDataFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT -> go @PhysicalDeviceMultiDrawPropertiesEXT   STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV -> go @GraphicsPipelineShaderGroupsCreateInfoNV@@ -1499,23 +1504,23 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT -> go @PhysicalDeviceMultiDrawFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT -> go @PhysicalDeviceBlendOperationAdvancedPropertiesEXT   STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT -> go @PipelineColorBlendAdvancedStateCreateInfoEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT -> go @PhysicalDeviceInlineUniformBlockFeaturesEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT -> go @PhysicalDeviceInlineUniformBlockPropertiesEXT-  STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT -> go @WriteDescriptorSetInlineUniformBlockEXT-  STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT -> go @DescriptorPoolInlineUniformBlockCreateInfoEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES -> go @PhysicalDeviceInlineUniformBlockFeatures+  STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES -> go @PhysicalDeviceInlineUniformBlockProperties+  STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK -> go @WriteDescriptorSetInlineUniformBlock+  STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO -> go @DescriptorPoolInlineUniformBlockCreateInfo   STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV -> go @PipelineCoverageModulationStateCreateInfoNV   STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO -> go @ImageFormatListCreateInfo   STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT -> go @ShaderModuleValidationCacheCreateInfoEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES -> go @PhysicalDeviceMaintenance3Properties-  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR -> go @PhysicalDeviceMaintenance4FeaturesKHR-  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance4PropertiesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES -> go @PhysicalDeviceMaintenance4Features+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -> go @PhysicalDeviceMaintenance4Properties   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES -> go @PhysicalDeviceShaderDrawParametersFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES -> go @PhysicalDeviceShaderFloat16Int8Features   STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES -> go @PhysicalDeviceFloatControlsProperties   STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES -> go @PhysicalDeviceHostQueryResetFeatures-  STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT -> go @DeviceQueueGlobalPriorityCreateInfoEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT -> go @PhysicalDeviceGlobalPriorityQueryFeaturesEXT-  STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT -> go @QueueFamilyGlobalPriorityPropertiesEXT+  STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR -> go @DeviceQueueGlobalPriorityCreateInfoKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR -> go @PhysicalDeviceGlobalPriorityQueryFeaturesKHR+  STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR -> go @QueueFamilyGlobalPriorityPropertiesKHR   STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT -> go @DebugUtilsMessengerCreateInfoEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT -> go @PhysicalDeviceDeviceMemoryReportFeaturesEXT   STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT -> go @DeviceDeviceMemoryReportCreateInfoEXT@@ -1613,12 +1618,12 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES -> go @PhysicalDeviceImagelessFramebufferFeatures   STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO -> go @FramebufferAttachmentsCreateInfo   STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO -> go @RenderPassAttachmentBeginInfo-  STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT -> go @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES -> go @PhysicalDeviceTextureCompressionASTCHDRFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV -> go @PhysicalDeviceCooperativeMatrixFeaturesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV -> go @PhysicalDeviceCooperativeMatrixPropertiesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT -> go @PhysicalDeviceYcbcrImageArraysFeaturesEXT   STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP -> go @PresentFrameTokenGGP-  STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT -> go @PipelineCreationFeedbackCreateInfoEXT+  STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO -> go @PipelineCreationFeedbackCreateInfo   STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT -> go @SurfaceFullScreenExclusiveInfoEXT   STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT -> go @SurfaceFullScreenExclusiveWin32InfoEXT   STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT -> go @SurfaceCapabilitiesFullScreenExclusiveEXT@@ -1640,23 +1645,25 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT -> go @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT   STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT -> go @AttachmentDescriptionStencilLayout   STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR -> go @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR-  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT -> go @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES -> go @PhysicalDeviceShaderDemoteToHelperInvocationFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT -> go @PhysicalDeviceTexelBufferAlignmentFeaturesEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT -> go @PhysicalDeviceTexelBufferAlignmentPropertiesEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT -> go @PhysicalDeviceSubgroupSizeControlFeaturesEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT -> go @PhysicalDeviceSubgroupSizeControlPropertiesEXT-  STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT -> go @PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES -> go @PhysicalDeviceTexelBufferAlignmentProperties+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES -> go @PhysicalDeviceSubgroupSizeControlFeatures+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES -> go @PhysicalDeviceSubgroupSizeControlProperties+  STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO -> go @PipelineShaderStageRequiredSubgroupSizeCreateInfo   STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI -> go @SubpassShadingPipelineCreateInfoHUAWEI   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI -> go @PhysicalDeviceSubpassShadingPropertiesHUAWEI   STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO -> go @MemoryOpaqueCaptureAddressAllocateInfo   STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT -> go @PhysicalDeviceLineRasterizationFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT -> go @PhysicalDeviceLineRasterizationPropertiesEXT   STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT -> go @PipelineRasterizationLineStateCreateInfoEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT -> go @PhysicalDevicePipelineCreationCacheControlFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES -> go @PhysicalDevicePipelineCreationCacheControlFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES -> go @PhysicalDeviceVulkan11Features   STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES -> go @PhysicalDeviceVulkan11Properties   STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES -> go @PhysicalDeviceVulkan12Features   STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES -> go @PhysicalDeviceVulkan12Properties+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES -> go @PhysicalDeviceVulkan13Features+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES -> go @PhysicalDeviceVulkan13Properties   STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD -> go @PipelineCompilerControlCreateInfoAMD   STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD -> go @PhysicalDeviceCoherentMemoryFeaturesAMD   STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT contains an undiscriminated union (ClearColorValue) and can't be safely peeked") Nothing Nothing@@ -1671,11 +1678,11 @@   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM   STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> go @PhysicalDeviceDiagnosticsConfigFeaturesNV   STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> go @DeviceDiagnosticsConfigCreateInfoNV-  STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR -> go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES -> go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR -> go @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> go @PhysicalDeviceRobustness2FeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> go @PhysicalDeviceRobustness2PropertiesEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceImageRobustnessFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES -> go @PhysicalDeviceImageRobustnessFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR -> go @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> go @PhysicalDevicePortabilitySubsetFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR@@ -1686,7 +1693,7 @@   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> go @PipelineFragmentShadingRateStateCreateInfoKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR -> go @PhysicalDeviceFragmentShadingRateFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR -> go @PhysicalDeviceFragmentShadingRatePropertiesKHR-  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR -> go @PhysicalDeviceShaderTerminateInvocationFeaturesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES -> go @PhysicalDeviceShaderTerminateInvocationFeatures   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV@@ -1698,17 +1705,17 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV -> go @PhysicalDeviceExternalMemoryRDMAFeaturesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT -> go @PhysicalDeviceColorWriteEnableFeaturesEXT   STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT -> go @PipelineColorWriteCreateInfoEXT-  STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR -> go @MemoryBarrier2KHR+  STRUCTURE_TYPE_MEMORY_BARRIER_2 -> go @MemoryBarrier2   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV-  STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR -> go @PhysicalDeviceSynchronization2FeaturesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES -> go @PhysicalDeviceSynchronization2Features   STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV -> go @PhysicalDeviceInheritedViewportScissorFeaturesNV   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV -> go @CommandBufferInheritanceViewportScissorInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT -> go @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT   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_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR -> go @PhysicalDeviceShaderIntegerDotProductFeaturesKHR-  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR -> go @PhysicalDeviceShaderIntegerDotProductPropertiesKHR+  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   STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV -> go @PhysicalDeviceRayTracingMotionBlurFeaturesNV   STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Nothing Nothing@@ -1717,14 +1724,14 @@   STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA -> go @BufferCollectionImageCreateInfoFUCHSIA   STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA -> go @BufferCollectionBufferCreateInfoFUCHSIA   STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT -> go @PhysicalDeviceRGBA10X6FormatsFeaturesEXT-  STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR -> go @FormatProperties3KHR+  STRUCTURE_TYPE_FORMAT_PROPERTIES_3 -> go @FormatProperties3   STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT -> go @DrmFormatModifierPropertiesList2EXT   STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID -> go @AndroidHardwareBufferFormatProperties2ANDROID-  STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR -> go @PipelineRenderingCreateInfoKHR+  STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO -> go @PipelineRenderingCreateInfo   STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> go @RenderingFragmentShadingRateAttachmentInfoKHR   STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT -> go @RenderingFragmentDensityMapAttachmentInfoEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR -> go @PhysicalDeviceDynamicRenderingFeaturesKHR-  STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR -> go @CommandBufferInheritanceRenderingInfoKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES -> go @PhysicalDeviceDynamicRenderingFeatures+  STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO -> go @CommandBufferInheritanceRenderingInfo   STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD -> go @AttachmentSampleCountInfoAMD   STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX -> go @MultiviewPerViewAttributesInfoNVX   STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT -> go @PhysicalDeviceImageViewMinLodFeaturesEXT@@ -1798,8 +1805,8 @@ {-# complete (::&) :: ExportMemoryWin32HandleInfoNV #-} {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoNV #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV #-}-{-# complete (::&) :: DevicePrivateDataCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDevicePrivateDataFeaturesEXT #-}+{-# complete (::&) :: DevicePrivateDataCreateInfo #-}+{-# complete (::&) :: PhysicalDevicePrivateDataFeatures #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceMultiDrawPropertiesEXT #-} {-# complete (::&) :: GraphicsPipelineShaderGroupsCreateInfoNV #-}@@ -1881,23 +1888,23 @@ {-# complete (::&) :: PhysicalDeviceMultiDrawFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceBlendOperationAdvancedPropertiesEXT #-} {-# complete (::&) :: PipelineColorBlendAdvancedStateCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceInlineUniformBlockFeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceInlineUniformBlockPropertiesEXT #-}-{-# complete (::&) :: WriteDescriptorSetInlineUniformBlockEXT #-}-{-# complete (::&) :: DescriptorPoolInlineUniformBlockCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceInlineUniformBlockFeatures #-}+{-# complete (::&) :: PhysicalDeviceInlineUniformBlockProperties #-}+{-# complete (::&) :: WriteDescriptorSetInlineUniformBlock #-}+{-# complete (::&) :: DescriptorPoolInlineUniformBlockCreateInfo #-} {-# complete (::&) :: PipelineCoverageModulationStateCreateInfoNV #-} {-# complete (::&) :: ImageFormatListCreateInfo #-} {-# complete (::&) :: ShaderModuleValidationCacheCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceMaintenance3Properties #-}-{-# complete (::&) :: PhysicalDeviceMaintenance4FeaturesKHR #-}-{-# complete (::&) :: PhysicalDeviceMaintenance4PropertiesKHR #-}+{-# complete (::&) :: PhysicalDeviceMaintenance4Features #-}+{-# complete (::&) :: PhysicalDeviceMaintenance4Properties #-} {-# complete (::&) :: PhysicalDeviceShaderDrawParametersFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderFloat16Int8Features #-} {-# complete (::&) :: PhysicalDeviceFloatControlsProperties #-} {-# complete (::&) :: PhysicalDeviceHostQueryResetFeatures #-}-{-# complete (::&) :: DeviceQueueGlobalPriorityCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceGlobalPriorityQueryFeaturesEXT #-}-{-# complete (::&) :: QueueFamilyGlobalPriorityPropertiesEXT #-}+{-# complete (::&) :: DeviceQueueGlobalPriorityCreateInfoKHR #-}+{-# complete (::&) :: PhysicalDeviceGlobalPriorityQueryFeaturesKHR #-}+{-# complete (::&) :: QueueFamilyGlobalPriorityPropertiesKHR #-} {-# complete (::&) :: DebugUtilsMessengerCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceDeviceMemoryReportFeaturesEXT #-} {-# complete (::&) :: DeviceDeviceMemoryReportCreateInfoEXT #-}@@ -1995,12 +2002,12 @@ {-# complete (::&) :: PhysicalDeviceImagelessFramebufferFeatures #-} {-# complete (::&) :: FramebufferAttachmentsCreateInfo #-} {-# complete (::&) :: RenderPassAttachmentBeginInfo #-}-{-# complete (::&) :: PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceTextureCompressionASTCHDRFeatures #-} {-# complete (::&) :: PhysicalDeviceCooperativeMatrixFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceCooperativeMatrixPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceYcbcrImageArraysFeaturesEXT #-} {-# complete (::&) :: PresentFrameTokenGGP #-}-{-# complete (::&) :: PipelineCreationFeedbackCreateInfoEXT #-}+{-# complete (::&) :: PipelineCreationFeedbackCreateInfo #-} {-# complete (::&) :: SurfaceFullScreenExclusiveInfoEXT #-} {-# complete (::&) :: SurfaceFullScreenExclusiveWin32InfoEXT #-} {-# complete (::&) :: SurfaceCapabilitiesFullScreenExclusiveEXT #-}@@ -2022,23 +2029,25 @@ {-# complete (::&) :: PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT #-} {-# complete (::&) :: AttachmentDescriptionStencilLayout #-} {-# complete (::&) :: PhysicalDevicePipelineExecutablePropertiesFeaturesKHR #-}-{-# complete (::&) :: PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceShaderDemoteToHelperInvocationFeatures #-} {-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentFeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentPropertiesEXT #-}-{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlFeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlPropertiesEXT #-}-{-# complete (::&) :: PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentProperties #-}+{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlFeatures #-}+{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlProperties #-}+{-# complete (::&) :: PipelineShaderStageRequiredSubgroupSizeCreateInfo #-} {-# complete (::&) :: SubpassShadingPipelineCreateInfoHUAWEI #-} {-# complete (::&) :: PhysicalDeviceSubpassShadingPropertiesHUAWEI #-} {-# complete (::&) :: MemoryOpaqueCaptureAddressAllocateInfo #-} {-# complete (::&) :: PhysicalDeviceLineRasterizationFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceLineRasterizationPropertiesEXT #-} {-# complete (::&) :: PipelineRasterizationLineStateCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDevicePipelineCreationCacheControlFeaturesEXT #-}+{-# complete (::&) :: PhysicalDevicePipelineCreationCacheControlFeatures #-} {-# complete (::&) :: PhysicalDeviceVulkan11Features #-} {-# complete (::&) :: PhysicalDeviceVulkan11Properties #-} {-# complete (::&) :: PhysicalDeviceVulkan12Features #-} {-# complete (::&) :: PhysicalDeviceVulkan12Properties #-}+{-# complete (::&) :: PhysicalDeviceVulkan13Features #-}+{-# complete (::&) :: PhysicalDeviceVulkan13Properties #-} {-# complete (::&) :: PipelineCompilerControlCreateInfoAMD #-} {-# complete (::&) :: PhysicalDeviceCoherentMemoryFeaturesAMD #-} {-# complete (::&) :: SamplerCustomBorderColorCreateInfoEXT #-}@@ -2053,11 +2062,11 @@ {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-} {-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-} {-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}-{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-}-{-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceImageRobustnessFeatures #-} {-# complete (::&) :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-}@@ -2068,7 +2077,7 @@ {-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRatePropertiesKHR #-}-{-# complete (::&) :: PhysicalDeviceShaderTerminateInvocationFeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceShaderTerminateInvocationFeatures #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV #-} {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}@@ -2080,17 +2089,17 @@ {-# complete (::&) :: PhysicalDeviceExternalMemoryRDMAFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-} {-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-}-{-# complete (::&) :: MemoryBarrier2KHR #-}+{-# complete (::&) :: MemoryBarrier2 #-} {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-}-{-# complete (::&) :: PhysicalDeviceSynchronization2FeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceSynchronization2Features #-} {-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-} {-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-} {-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-} {-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR #-}-{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR #-}+{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeatures #-}+{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductProperties #-} {-# complete (::&) :: PhysicalDeviceDrmPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceRayTracingMotionBlurFeaturesNV #-} {-# complete (::&) :: AccelerationStructureGeometryMotionTrianglesDataNV #-}@@ -2099,14 +2108,14 @@ {-# complete (::&) :: BufferCollectionImageCreateInfoFUCHSIA #-} {-# complete (::&) :: BufferCollectionBufferCreateInfoFUCHSIA #-} {-# complete (::&) :: PhysicalDeviceRGBA10X6FormatsFeaturesEXT #-}-{-# complete (::&) :: FormatProperties3KHR #-}+{-# complete (::&) :: FormatProperties3 #-} {-# complete (::&) :: DrmFormatModifierPropertiesList2EXT #-} {-# complete (::&) :: AndroidHardwareBufferFormatProperties2ANDROID #-}-{-# complete (::&) :: PipelineRenderingCreateInfoKHR #-}+{-# complete (::&) :: PipelineRenderingCreateInfo #-} {-# complete (::&) :: RenderingFragmentShadingRateAttachmentInfoKHR #-} {-# complete (::&) :: RenderingFragmentDensityMapAttachmentInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceDynamicRenderingFeaturesKHR #-}-{-# complete (::&) :: CommandBufferInheritanceRenderingInfoKHR #-}+{-# complete (::&) :: PhysicalDeviceDynamicRenderingFeatures #-}+{-# complete (::&) :: CommandBufferInheritanceRenderingInfo #-} {-# complete (::&) :: AttachmentSampleCountInfoAMD #-} {-# complete (::&) :: MultiviewPerViewAttributesInfoNVX #-} {-# complete (::&) :: PhysicalDeviceImageViewMinLodFeaturesEXT #-}
src/Vulkan/Core10/APIConstants.hs view
@@ -7,6 +7,7 @@                                    , MAX_DRIVER_NAME_SIZE_KHR                                    , MAX_DRIVER_INFO_SIZE_KHR                                    , SHADER_UNUSED_NV+                                   , MAX_GLOBAL_PRIORITY_SIZE_EXT                                    , MAX_PHYSICAL_DEVICE_NAME_SIZE                                    , pattern MAX_PHYSICAL_DEVICE_NAME_SIZE                                    , UUID_SIZE@@ -45,8 +46,8 @@                                    , pattern MAX_DRIVER_INFO_SIZE                                    , SHADER_UNUSED_KHR                                    , pattern SHADER_UNUSED_KHR-                                   , MAX_GLOBAL_PRIORITY_SIZE_EXT-                                   , pattern MAX_GLOBAL_PRIORITY_SIZE_EXT+                                   , MAX_GLOBAL_PRIORITY_SIZE_KHR+                                   , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR                                    , pattern NULL_HANDLE                                    , IsHandle                                    , HasObjectType(..)@@ -93,6 +94,10 @@ type SHADER_UNUSED_NV = SHADER_UNUSED_KHR  +-- No documentation found for TopLevel "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"+type MAX_GLOBAL_PRIORITY_SIZE_EXT = MAX_GLOBAL_PRIORITY_SIZE_KHR++ type MAX_PHYSICAL_DEVICE_NAME_SIZE = 256  -- | VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - Length of a physical device name@@ -316,11 +321,16 @@ pattern SHADER_UNUSED_KHR = 0xffffffff  -type MAX_GLOBAL_PRIORITY_SIZE_EXT = 16+type MAX_GLOBAL_PRIORITY_SIZE_KHR = 16 --- No documentation found for TopLevel "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"-pattern MAX_GLOBAL_PRIORITY_SIZE_EXT :: forall a . Integral a => a-pattern MAX_GLOBAL_PRIORITY_SIZE_EXT = 16+-- | VK_MAX_GLOBAL_PRIORITY_SIZE_KHR - Length of an array of global queue+-- priorities+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>+pattern MAX_GLOBAL_PRIORITY_SIZE_KHR :: forall a . Integral a => a+pattern MAX_GLOBAL_PRIORITY_SIZE_KHR = 16   -- | VK_NULL_HANDLE - Reserved non-valid object handle
src/Vulkan/Core10/APIConstants.hs-boot view
@@ -6,6 +6,7 @@                                    , MAX_DRIVER_NAME_SIZE                                    , MAX_DRIVER_INFO_SIZE                                    , SHADER_UNUSED_KHR+                                   , MAX_GLOBAL_PRIORITY_SIZE_KHR                                    ) where  @@ -26,4 +27,7 @@   type SHADER_UNUSED_KHR = 0xffffffff+++type MAX_GLOBAL_PRIORITY_SIZE_KHR = 16 
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -87,6 +87,7 @@ -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.createQueryPool', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',@@ -136,6 +137,7 @@ -- 'Vulkan.Core10.Pipeline.destroyPipeline', -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.destroyQueryPool', -- 'Vulkan.Core10.Pass.destroyRenderPass',
src/Vulkan/Core10/Buffer.hs view
@@ -163,7 +163,7 @@                 -- parameters affecting creation of the buffer.                 (BufferCreateInfo a)              -> -- | @pAllocator@ controls host memory allocation as described in the-                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                 -- chapter.                 ("allocator" ::: Maybe AllocationCallbacks)              -> io (Buffer)@@ -252,7 +252,7 @@               -> -- | @buffer@ is the buffer to destroy.                  Buffer               -> -- | @pAllocator@ controls host memory allocation as described in the-                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                  -- chapter.                  ("allocator" ::: Maybe AllocationCallbacks)               -> io ()@@ -295,17 +295,17 @@ --     for the @physicalDevice@ that was used to create @device@ -- -- -   #VUID-VkBufferCreateInfo-flags-00915# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseBinding sparse bindings>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparse bindings> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT' -- -- -   #VUID-VkBufferCreateInfo-flags-00916# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyBuffer sparse buffer residency>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyBuffer sparse buffer residency> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkBufferCreateInfo-flags-00917# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_ALIASED_BIT' --@@ -365,14 +365,14 @@ -- -   #VUID-VkBufferCreateInfo-flags-03338# If @flags@ includes --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT', --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT ::bufferDeviceAddressCaptureReplay>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT ::bufferDeviceAddressCaptureReplay> --     feature /must/ be enabled -- -- -   #VUID-VkBufferCreateInfo-size-06409# @size@ /must/ be less than or --     equal to---     'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR'::@maxBufferSize@+--     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties'::@maxBufferSize@ -- -- == Valid Usage (Implicit) --@@ -419,7 +419,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferConstraintsInfoFUCHSIA', -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlags', -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlags',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceBufferMemoryRequirements', -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Core10.Enums.SharingMode.SharingMode', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createBuffer'
src/Vulkan/Core10/BufferView.hs view
@@ -112,7 +112,7 @@                     -- containing parameters to be used to create the buffer view.                     BufferViewCreateInfo                  -> -- | @pAllocator@ controls host memory allocation as described in the-                    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                     -- chapter.                     ("allocator" ::: Maybe AllocationCallbacks)                  -> io (BufferView)@@ -202,7 +202,7 @@                   -> -- | @bufferView@ is the buffer view to destroy.                      BufferView                   -> -- | @pAllocator@ controls host memory allocation as described in the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                      -- chapter.                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io ()@@ -239,7 +239,7 @@ --     elements given by (⌊@range@ \/ (texel block size)⌋ × (texels per --     block)) where texel block size and texels per block are as defined --     in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats> --     table for @format@, /must/ be less than or equal to --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTexelBufferElements@ --@@ -252,7 +252,7 @@ --     elements given by (⌊(size - @offset@) \/ (texel block size)⌋ × --     (texels per block)) where size is the size of @buffer@, and texel --     block size and texels per block are as defined in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats> --     table for @format@, /must/ be less than or equal to --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTexelBufferElements@ --@@ -289,33 +289,33 @@ --     'Vulkan.Core10.Handles.DeviceMemory' object -- -- -   #VUID-VkBufferViewCreateInfo-offset-02749# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> --     feature is not enabled, @offset@ /must/ be a multiple of --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@ -- -- -   #VUID-VkBufferViewCreateInfo-buffer-02750# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> --     feature is enabled and if @buffer@ was created with @usage@ --     containing --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT', --     @offset@ /must/ be a multiple of the lesser of---     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@storageTexelBufferOffsetAlignmentBytes@+--     'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@storageTexelBufferOffsetAlignmentBytes@ --     or, if---     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@storageTexelBufferOffsetSingleTexelAlignment@+--     'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@storageTexelBufferOffsetSingleTexelAlignment@ --     is 'Vulkan.Core10.FundamentalTypes.TRUE', the size of a texel of the --     requested @format@. If the size of a texel is a multiple of three --     bytes, then the size of a single component of @format@ is used --     instead -- -- -   #VUID-VkBufferViewCreateInfo-buffer-02751# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> --     feature is enabled and if @buffer@ was created with @usage@ --     containing --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT', --     @offset@ /must/ be a multiple of the lesser of---     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@uniformTexelBufferOffsetAlignmentBytes@+--     'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@uniformTexelBufferOffsetAlignmentBytes@ --     or, if---     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@uniformTexelBufferOffsetSingleTexelAlignment@+--     'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@uniformTexelBufferOffsetSingleTexelAlignment@ --     is 'Vulkan.Core10.FundamentalTypes.TRUE', the size of a texel of the --     requested @format@. If the size of a texel is a multiple of three --     bytes, then the size of a single component of @format@ is used@@ -362,7 +362,7 @@     -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the range from @offset@ to the     -- end of the buffer is used. If 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is     -- used and the remaining size of the buffer is not a multiple of the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#texel-block-size texel block size>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#texel-block-size texel block size>     -- of @format@, the nearest smaller multiple is used.     range :: DeviceSize   }
src/Vulkan/Core10/CommandBuffer.hs view
@@ -76,7 +76,7 @@ import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV) import Vulkan.Core10.Enums.CommandBufferLevel (CommandBufferLevel) import Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlagBits(..))@@ -149,7 +149,7 @@ -- contents. -- -- When command buffers are first allocated, they are in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. -- -- == Valid Usage (Implicit) --@@ -239,15 +239,15 @@ -- = Description -- -- Any primary command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has any element of @pCommandBuffers@ recorded into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- -   #VUID-vkFreeCommandBuffers-pCommandBuffers-00047# All elements of --     @pCommandBuffers@ /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- -   #VUID-vkFreeCommandBuffers-pCommandBuffers-00048# @pCommandBuffers@ --     /must/ be a valid pointer to an array of @commandBufferCount@@@ -319,14 +319,14 @@ -- -- -   #VUID-vkBeginCommandBuffer-commandBuffer-00049# @commandBuffer@ --     /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or pending state> -- -- -   #VUID-vkBeginCommandBuffer-commandBuffer-00050# If @commandBuffer@ --     was allocated from a 'Vulkan.Core10.Handles.CommandPool' which did --     not have the --     'Vulkan.Core10.Enums.CommandPoolCreateFlagBits.COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT' --     flag set, @commandBuffer@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state> -- -- -   #VUID-vkBeginCommandBuffer-commandBuffer-00051# If @commandBuffer@ --     is a secondary command buffer, the @pInheritanceInfo@ member of@@ -426,28 +426,28 @@ -- /must/ be reset. -- -- The command buffer /must/ have been in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>, -- and is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>. -- -- == Valid Usage -- -- -   #VUID-vkEndCommandBuffer-commandBuffer-00059# @commandBuffer@ /must/ --     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- -   #VUID-vkEndCommandBuffer-commandBuffer-00060# If @commandBuffer@ is --     a primary command buffer, there /must/ not be an active render pass --     instance -- -- -   #VUID-vkEndCommandBuffer-commandBuffer-00061# All queries made---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active> --     during the recording of @commandBuffer@ /must/ have been made --     inactive -- -- -   #VUID-vkEndCommandBuffer-None-01978# Conditional rendering /must/ --     not be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#active-conditional-rendering active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- -   #VUID-vkEndCommandBuffer-commandBuffer-01815# If @commandBuffer@ is --     a secondary command buffer, there /must/ not be an outstanding@@ -517,15 +517,15 @@ -- = Description -- -- Any primary command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has @commandBuffer@ recorded into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- -   #VUID-vkResetCommandBuffer-commandBuffer-00045# @commandBuffer@ --     /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- -   #VUID-vkResetCommandBuffer-commandBuffer-00046# @commandBuffer@ --     /must/ have been allocated from a pool that was created with the@@ -567,9 +567,9 @@                     . (MonadIO io)                    => -- | @commandBuffer@ is the command buffer to reset. The command buffer /can/                       -- be in any state other than-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending>,+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending>,                       -- and is moved into the-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.                       CommandBuffer                    -> -- | @flags@ is a bitmask of                       -- 'Vulkan.Core10.Enums.CommandBufferResetFlagBits.CommandBufferResetFlagBits'@@ -667,30 +667,30 @@ -- -- If the 'Vulkan.Core10.Handles.CommandBuffer' will not be executed within -- a render pass instance, or if the render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- @renderPass@, @subpass@, and @framebuffer@ are ignored. -- -- == Valid Usage -- -- -   #VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries> --     feature is not enabled, @occlusionQueryEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkCommandBufferInheritanceInfo-queryFlags-00057# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries> --     feature is enabled, @queryFlags@ /must/ be a valid combination of --     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits' --     values -- -- -   #VUID-VkCommandBufferInheritanceInfo-queryFlags-02788# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries> --     feature is not enabled, @queryFlags@ /must/ be @0@ -- -- -   #VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries> --     feature is enabled, @pipelineStatistics@ /must/ be a valid --     combination of --     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits'@@ -698,7 +698,7 @@ -- -- -   #VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries> --     feature is not enabled, @pipelineStatistics@ /must/ be @0@ -- -- == Valid Usage (Implicit)@@ -712,7 +712,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD', --     'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', --     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'@@ -739,7 +739,7 @@     next :: Chain es   , -- | @renderPass@ is a 'Vulkan.Core10.Handles.RenderPass' object defining     -- which render passes the 'Vulkan.Core10.Handles.CommandBuffer' will be-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>     -- with and /can/ be executed within.     renderPass :: RenderPass   , -- | @subpass@ is the index of the subpass within the render pass instance@@ -799,7 +799,7 @@   extends _ f     | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f     | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f-    | Just Refl <- eqT @e @CommandBufferInheritanceRenderingInfoKHR = Just f+    | Just Refl <- eqT @e @CommandBufferInheritanceRenderingInfo = Just f     | Just Refl <- eqT @e @CommandBufferInheritanceViewportScissorInfoNV = Just f     | Just Refl <- eqT @e @CommandBufferInheritanceRenderPassTransformInfoQCOM = Just f     | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f@@ -882,7 +882,7 @@ --     and the @renderPass@ member of @pInheritanceInfo@ is --     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @pNext@ chain of --     @pInheritanceInfo@ /must/ include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo' --     structure -- -- -   #VUID-VkCommandBufferBeginInfo-flags-06003# If @flags@ contains@@ -895,7 +895,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, the @colorAttachmentCount@ member of that structure --     /must/ be equal to the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@ -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -249,13210 +249,13212 @@ -- -   The pipeline bound to --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' --     controls the behavior of all---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dispatch dispatching commands>.------ -   The pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     controls the behavior of all---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing drawing commands>.------ -   The pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR'---     controls the behavior of---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' and---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'.------ -   The pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'---     controls the behavior of---     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI'.------ == Valid Usage------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00777# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00778# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00779# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',---     @pipeline@ /must/ be a compute pipeline------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00780# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',---     @pipeline@ /must/ be a graphics pipeline------ -   #VUID-vkCmdBindPipeline-pipeline-00781# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-variableMultisampleRate variable multisample rate>---     feature is not supported, @pipeline@ is a graphics pipeline, the---     current subpass---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments uses no attachments>,---     and this is not the first call to this function with a graphics---     pipeline after transitioning to the current subpass, then the sample---     count specified by this pipeline /must/ match that set in the---     previous pipeline------ -   #VUID-vkCmdBindPipeline-variableSampleLocations-01525# If---     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@---     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @pipeline@ is a---     graphics pipeline created with a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'---     structure having its @sampleLocationsEnable@ member set to---     'Vulkan.Core10.FundamentalTypes.TRUE' but without---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     enabled then the current render pass instance /must/ have been begun---     by specifying a---     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'---     structure whose @pPostSubpassSampleLocations@ member contains an---     element with a @subpassIndex@ matching the current subpass index and---     the @sampleLocationsInfo@ member of that element /must/ match the---     @sampleLocationsInfo@ specified in---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'---     when the pipeline was created------ -   #VUID-vkCmdBindPipeline-None-02323# This command /must/ not be---     recorded when transform feedback is active------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02391# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',---     @pipeline@ /must/ be a ray tracing pipeline------ -   #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have---     been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'---     set------ -   #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a---     secondary command buffer with---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@---     enabled and @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',---     then the @pipeline@ /must/ have been created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled------ -   #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a---     secondary command buffer with---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@---     enabled and @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     and @pipeline@ was created with---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'---     structure and its @discardRectangleCount@ member is not @0@, then---     the pipeline /must/ have been created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'---     enabled------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>---     limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s---     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@---     /must/ be the same as that of any other pipelines previously bound---     to this bind point within the current render pass instance,---     including any pipeline already bound when beginning the render pass---     instance------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04949# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04950# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',---     @pipeline@ /must/ be a subpass shading pipeline------ -   #VUID-vkCmdBindPipeline-pipeline-06195# If @pipeline@ is a graphics---     pipeline, this command has been called inside a render pass instance---     started with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     and commands using the previously bound graphics pipeline have been---     recorded within the render pass instance, then the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@---     specified by this pipeline /must/ match that set in the previous---     pipeline------ -   #VUID-vkCmdBindPipeline-pipeline-06196# If @pipeline@ is a graphics---     pipeline, this command has been called inside a render pass instance---     started with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     and commands using the previously bound graphics pipeline have been---     recorded within the render pass instance, then the elements of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@---     specified by this pipeline /must/ match that set in the previous---     pipeline------ -   #VUID-vkCmdBindPipeline-pipeline-06197# If @pipeline@ is a graphics---     pipeline, this command has been called inside a render pass instance---     started with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     and commands using the previously bound graphics pipeline have been---     recorded within the render pass instance, then the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@---     specified by this pipeline /must/ match that set in the previous---     pipeline------ -   #VUID-vkCmdBindPipeline-pipeline-06194# If @pipeline@ is a graphics---     pipeline, this command has been called inside a render pass instance---     started with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     and commands using the previously bound graphics pipeline have been---     recorded within the render pass instance, then the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@---     specified by this pipeline /must/ match that set in the previous---     pipeline------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-parameter#---     @pipelineBindPoint@ /must/ be a valid---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value------ -   #VUID-vkCmdBindPipeline-pipeline-parameter# @pipeline@ /must/ be a---     valid 'Vulkan.Core10.Handles.Pipeline' handle------ -   #VUID-vkCmdBindPipeline-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-vkCmdBindPipeline-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdBindPipeline-commonparent# Both of @commandBuffer@, and---     @pipeline@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'-cmdBindPipeline :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer that the pipeline will be bound-                   -- to.-                   CommandBuffer-                -> -- | @pipelineBindPoint@ is a-                   -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value-                   -- specifying to which bind point the pipeline is bound. Binding one does-                   -- not disturb the others.-                   PipelineBindPoint-                -> -- | @pipeline@ is the pipeline to be bound.-                   Pipeline-                -> io ()-cmdBindPipeline commandBuffer pipelineBindPoint pipeline = liftIO $ do-  let vkCmdBindPipelinePtr = pVkCmdBindPipeline (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdBindPipelinePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing-  let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr-  traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetViewport-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()---- | vkCmdSetViewport - Set the viewport dynamically for a command buffer------ = Description------ This command sets the viewport transformation parameters state for--- subsequent drawing commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pViewports@--- values used to create the currently active pipeline.------ The viewport parameters taken from element i of @pViewports@ replace the--- current state for the viewport index @firstViewport@ + i, for i in [0,--- @viewportCount@).------ == Valid Usage------ -   #VUID-vkCmdSetViewport-firstViewport-01223# The sum of---     @firstViewport@ and @viewportCount@ /must/ be between @1@ and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,---     inclusive------ -   #VUID-vkCmdSetViewport-firstViewport-01224# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>---     feature is not enabled, @firstViewport@ /must/ be @0@------ -   #VUID-vkCmdSetViewport-viewportCount-01225# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>---     feature is not enabled, @viewportCount@ /must/ be @1@------ -   #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/---     not have---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@---     enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetViewport-pViewports-parameter# @pViewports@ /must/ be---     a valid pointer to an array of @viewportCount@ valid---     'Vulkan.Core10.Pipeline.Viewport' structures------ -   #VUID-vkCmdSetViewport-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-vkCmdSetViewport-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdSetViewport-viewportCount-arraylength# @viewportCount@---     /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#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'-cmdSetViewport :: forall io-                . (MonadIO io)-               => -- | @commandBuffer@ is the command buffer into which the command will be-                  -- recorded.-                  CommandBuffer-               -> -- | @firstViewport@ is the index of the first viewport whose parameters are-                  -- updated by the command.-                  ("firstViewport" ::: Word32)-               -> -- | @pViewports@ is a pointer to an array of-                  -- 'Vulkan.Core10.Pipeline.Viewport' structures specifying viewport-                  -- parameters.-                  ("viewports" ::: Vector Viewport)-               -> io ()-cmdSetViewport commandBuffer firstViewport viewports = liftIO . evalContT $ do-  let vkCmdSetViewportPtr = pVkCmdSetViewport (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdSetViewportPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewport is null" Nothing Nothing-  let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr-  pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)-  lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetScissor-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()---- | vkCmdSetScissor - Set scissor rectangles dynamically for a command--- buffer------ = Description------ The scissor rectangles taken from element i of @pScissors@ replace the--- current state for the scissor index @firstScissor@ + i, for i in [0,--- @scissorCount@).------ This command sets the scissor rectangles for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pScissors@--- values used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetScissor-firstScissor-00592# The sum of @firstScissor@---     and @scissorCount@ /must/ be between @1@ and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,---     inclusive------ -   #VUID-vkCmdSetScissor-firstScissor-00593# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>---     feature is not enabled, @firstScissor@ /must/ be @0@------ -   #VUID-vkCmdSetScissor-scissorCount-00594# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>---     feature is not enabled, @scissorCount@ /must/ be @1@------ -   #VUID-vkCmdSetScissor-x-00595# The @x@ and @y@ members of @offset@---     member of any element of @pScissors@ /must/ be greater than or equal---     to @0@------ -   #VUID-vkCmdSetScissor-offset-00596# Evaluation of (@offset.x@ +---     @extent.width@) /must/ not cause a signed integer addition overflow---     for any element of @pScissors@------ -   #VUID-vkCmdSetScissor-offset-00597# Evaluation of (@offset.y@ +---     @extent.height@) /must/ not cause a signed integer addition overflow---     for any element of @pScissors@------ -   #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is---     recorded in a secondary command buffer with---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@---     enabled, then this function /must/ not be called------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetScissor-pScissors-parameter# @pScissors@ /must/ be a---     valid pointer to an array of @scissorCount@---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ -   #VUID-vkCmdSetScissor-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-vkCmdSetScissor-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdSetScissor-scissorCount-arraylength# @scissorCount@---     /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#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.Rect2D'-cmdSetScissor :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @firstScissor@ is the index of the first scissor whose state is updated-                 -- by the command.-                 ("firstScissor" ::: Word32)-              -> -- | @pScissors@ is a pointer to an array of-                 -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining scissor-                 -- rectangles.-                 ("scissors" ::: Vector Rect2D)-              -> io ()-cmdSetScissor commandBuffer firstScissor scissors = liftIO . evalContT $ do-  let vkCmdSetScissorPtr = pVkCmdSetScissor (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdSetScissorPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissor is null" Nothing Nothing-  let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr-  pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)-  lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor' (commandBufferHandle (commandBuffer)) (firstScissor) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetLineWidth-  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()---- | vkCmdSetLineWidth - Set line width dynamically for a command buffer------ = Description------ This command sets the line width for subsequent drawing commands when--- the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@lineWidth@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetLineWidth-lineWidth-00788# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-wideLines wide lines>---     feature is not enabled, @lineWidth@ /must/ be @1.0@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetLineWidth-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetLineWidth-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-vkCmdSetLineWidth-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetLineWidth :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command will be-                   -- recorded.-                   CommandBuffer-                -> -- | @lineWidth@ is the width of rasterized line segments.-                   ("lineWidth" ::: Float)-                -> io ()-cmdSetLineWidth commandBuffer lineWidth = liftIO $ do-  let vkCmdSetLineWidthPtr = pVkCmdSetLineWidth (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetLineWidthPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing-  let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr-  traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth' (commandBufferHandle (commandBuffer)) (CFloat (lineWidth)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthBias-  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()---- | vkCmdSetDepthBias - Set depth bias factors and clamp dynamically for a--- command buffer------ = Description------ This command sets the depth bias parameters for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@depthBiasConstantFactor@,--- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the--- currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBiasClamp depth bias clamping>---     feature is not enabled, @depthBiasClamp@ /must/ be @0.0@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthBias-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthBias-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-vkCmdSetDepthBias-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBias :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command will be-                   -- recorded.-                   CommandBuffer-                -> -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant-                   -- depth value added to each fragment.-                   ("depthBiasConstantFactor" ::: Float)-                -> -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.-                   ("depthBiasClamp" ::: Float)-                -> -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope-                   -- in depth bias calculations.-                   ("depthBiasSlopeFactor" ::: Float)-                -> io ()-cmdSetDepthBias commandBuffer depthBiasConstantFactor depthBiasClamp depthBiasSlopeFactor = liftIO $ do-  let vkCmdSetDepthBiasPtr = pVkCmdSetDepthBias (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing-  let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr-  traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias' (commandBufferHandle (commandBuffer)) (CFloat (depthBiasConstantFactor)) (CFloat (depthBiasClamp)) (CFloat (depthBiasSlopeFactor)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetBlendConstants-  :: FunPtr (Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()---- | vkCmdSetBlendConstants - Set the values of blend constants------ = Description------ This command sets blend constants for subsequent drawing commands when--- the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@blendConstants@--- values used to create the currently active pipeline.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetBlendConstants-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetBlendConstants-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-vkCmdSetBlendConstants-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetBlendConstants :: forall io-                      . (MonadIO io)-                     => -- | @commandBuffer@ is the command buffer into which the command will be-                        -- recorded.-                        CommandBuffer-                     -> -- | @blendConstants@ is a pointer to an array of four values specifying the-                        -- Rc, Gc, Bc, and Ac components of the blend constant color used in-                        -- blending, depending on the-                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.-                        ("blendConstants" ::: (Float, Float, Float, Float))-                     -> io ()-cmdSetBlendConstants commandBuffer blendConstants = liftIO . evalContT $ do-  let vkCmdSetBlendConstantsPtr = pVkCmdSetBlendConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdSetBlendConstantsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetBlendConstants is null" Nothing Nothing-  let vkCmdSetBlendConstants' = mkVkCmdSetBlendConstants vkCmdSetBlendConstantsPtr-  pBlendConstants <- ContT $ allocaBytes @(FixedArray 4 CFloat) 16-  let pBlendConstants' = lowerArrayPtr pBlendConstants-  lift $ case (blendConstants) of-    (e0, e1, e2, e3) -> do-      poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))-      poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))-      poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))-      poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))-  lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants' (commandBufferHandle (commandBuffer)) (pBlendConstants))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthBounds-  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()---- | vkCmdSetDepthBounds - Set depth bounds range dynamically for a command--- buffer------ = Description------ This command sets the depth bounds range for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@minDepthBounds@--- and--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@maxDepthBounds@--- values used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthBounds-minDepthBounds-00600# Unless the---     @VK_EXT_depth_range_unrestricted@ extension is enabled---     @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive------ -   #VUID-vkCmdSetDepthBounds-maxDepthBounds-00601# Unless the---     @VK_EXT_depth_range_unrestricted@ extension is enabled---     @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthBounds-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthBounds-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-vkCmdSetDepthBounds-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBounds :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @minDepthBounds@ is the minimum depth bound.-                     ("minDepthBounds" ::: Float)-                  -> -- | @maxDepthBounds@ is the maximum depth bound.-                     ("maxDepthBounds" ::: Float)-                  -> io ()-cmdSetDepthBounds commandBuffer minDepthBounds maxDepthBounds = liftIO $ do-  let vkCmdSetDepthBoundsPtr = pVkCmdSetDepthBounds (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing-  let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr-  traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds' (commandBufferHandle (commandBuffer)) (CFloat (minDepthBounds)) (CFloat (maxDepthBounds)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetStencilCompareMask-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()---- | vkCmdSetStencilCompareMask - Set stencil compare mask dynamically for a--- command buffer------ = Description------ This command sets the stencil compare mask for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@compareMask@--- value used to create the currently active pipeline, for both front and--- back faces.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetStencilCompareMask-faceMask-parameter# @faceMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ -   #VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask#---     @faceMask@ /must/ not be @0@------ -   #VUID-vkCmdSetStencilCompareMask-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-vkCmdSetStencilCompareMask-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'-cmdSetStencilCompareMask :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command will be-                            -- recorded.-                            CommandBuffer-                         -> -- | @faceMask@ is a bitmask of-                            -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying-                            -- the set of stencil state for which to update the compare mask.-                            ("faceMask" ::: StencilFaceFlags)-                         -> -- | @compareMask@ is the new value to use as the stencil compare mask.-                            ("compareMask" ::: Word32)-                         -> io ()-cmdSetStencilCompareMask commandBuffer faceMask compareMask = liftIO $ do-  let vkCmdSetStencilCompareMaskPtr = pVkCmdSetStencilCompareMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing-  let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr-  traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask' (commandBufferHandle (commandBuffer)) (faceMask) (compareMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetStencilWriteMask-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()---- | vkCmdSetStencilWriteMask - Set stencil write mask dynamically for a--- command buffer------ = Description------ This command sets the stencil write mask for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set--- in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@writeMask@--- value used to create the currently active pipeline, for both front and--- back faces.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetStencilWriteMask-faceMask-parameter# @faceMask@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ -   #VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask# @faceMask@---     /must/ not be @0@------ -   #VUID-vkCmdSetStencilWriteMask-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-vkCmdSetStencilWriteMask-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'-cmdSetStencilWriteMask :: forall io-                        . (MonadIO io)-                       => -- | @commandBuffer@ is the command buffer into which the command will be-                          -- recorded.-                          CommandBuffer-                       -> -- | @faceMask@ is a bitmask of-                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying-                          -- the set of stencil state for which to update the write mask, as-                          -- described above for 'cmdSetStencilCompareMask'.-                          ("faceMask" ::: StencilFaceFlags)-                       -> -- | @writeMask@ is the new value to use as the stencil write mask.-                          ("writeMask" ::: Word32)-                       -> io ()-cmdSetStencilWriteMask commandBuffer faceMask writeMask = liftIO $ do-  let vkCmdSetStencilWriteMaskPtr = pVkCmdSetStencilWriteMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing-  let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr-  traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask' (commandBufferHandle (commandBuffer)) (faceMask) (writeMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetStencilReference-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()---- | vkCmdSetStencilReference - Set stencil reference value dynamically for a--- command buffer------ = Description------ This command sets the stencil reference value for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' set--- in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@reference@--- value used to create the currently active pipeline, for both front and--- back faces.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetStencilReference-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetStencilReference-faceMask-parameter# @faceMask@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ -   #VUID-vkCmdSetStencilReference-faceMask-requiredbitmask# @faceMask@---     /must/ not be @0@------ -   #VUID-vkCmdSetStencilReference-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-vkCmdSetStencilReference-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'-cmdSetStencilReference :: forall io-                        . (MonadIO io)-                       => -- | @commandBuffer@ is the command buffer into which the command will be-                          -- recorded.-                          CommandBuffer-                       -> -- | @faceMask@ is a bitmask of-                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying-                          -- the set of stencil state for which to update the reference value, as-                          -- described above for 'cmdSetStencilCompareMask'.-                          ("faceMask" ::: StencilFaceFlags)-                       -> -- | @reference@ is the new value to use as the stencil reference value.-                          ("reference" ::: Word32)-                       -> io ()-cmdSetStencilReference commandBuffer faceMask reference = liftIO $ do-  let vkCmdSetStencilReferencePtr = pVkCmdSetStencilReference (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing-  let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr-  traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference' (commandBufferHandle (commandBuffer)) (faceMask) (reference))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBindDescriptorSets-  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()---- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer------ = Description------ 'cmdBindDescriptorSets' causes the sets numbered [@firstSet@..--- @firstSet@+@descriptorSetCount@-1] to use the bindings stored in--- @pDescriptorSets@[0..descriptorSetCount-1] for subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>--- set by @pipelineBindPoint@. Any bindings that were previously applied--- via these sets 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--- either a different set is bound to the same set number, or the set is--- disturbed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.------ A compatible descriptor set /must/ be bound for all set numbers that any--- shaders in a pipeline access, at the time that a drawing or dispatching--- command is recorded to execute using that pipeline. However, if none of--- the shaders in a pipeline statically use any bindings with a particular--- set number, then no descriptor set need be bound for that set number,--- even if the pipeline layout includes a non-trivial descriptor set layout--- for that set number.------ If any of the sets being bound include dynamic uniform or storage--- buffers, then @pDynamicOffsets@ includes one element for each array--- element in each dynamic descriptor type binding in each set. Values are--- taken from @pDynamicOffsets@ in an order such that all entries for set N--- come before set N+1; within a set, entries are ordered by the binding--- numbers in the descriptor set layouts; and within a binding array,--- elements are in order. @dynamicOffsetCount@ /must/ equal the total--- number of dynamic descriptors in the sets being bound.------ The effective offset used for dynamic uniform and storage buffer--- bindings is the sum of the relative offset taken from @pDynamicOffsets@,--- and the base address of the buffer plus base offset in the descriptor--- set. The range of the dynamic uniform and storage buffer bindings is the--- buffer range as specified in the descriptor set.------ Each of the @pDescriptorSets@ /must/ be compatible with the pipeline--- layout specified by @layout@. The layout used to program the bindings--- /must/ also be compatible with the pipeline used in subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>--- with that pipeline type, as defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>--- section.------ The descriptor set contents bound by a call to 'cmdBindDescriptorSets'--- /may/ be consumed at the following times:------ -   For descriptor bindings created with the---     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'---     bit set, the contents /may/ be consumed when the command buffer is---     submitted to a queue, or during shader execution of the resulting---     draws and dispatches, or any time in between. Otherwise,------ -   during host execution of the command, or during shader execution of---     the resulting draws and dispatches, or any time in between.------ Thus, the contents of a descriptor set binding /must/ not be altered--- (overwritten by an update command, or freed) between the first point in--- time that it /may/ be consumed, and when the command completes executing--- on the queue.------ The contents of @pDynamicOffsets@ are consumed immediately during--- execution of 'cmdBindDescriptorSets'. Once all pending uses have--- completed, it is legal to update and reuse a descriptor set.------ == Valid Usage------ -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358# Each element of---     @pDescriptorSets@ /must/ have been allocated with a---     'Vulkan.Core10.Handles.DescriptorSetLayout' that matches (is the---     same as, or identically defined as) the---     'Vulkan.Core10.Handles.DescriptorSetLayout' at set /n/ in @layout@,---     where /n/ is the sum of @firstSet@ and the index into---     @pDescriptorSets@------ -   #VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359#---     @dynamicOffsetCount@ /must/ be equal to the total number of dynamic---     descriptors in @pDescriptorSets@------ -   #VUID-vkCmdBindDescriptorSets-firstSet-00360# The sum of @firstSet@---     and @descriptorSetCount@ /must/ be less than or equal to---     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@---     provided when @layout@ was created------ -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#---     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s---     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family------ -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971# Each element of---     @pDynamicOffsets@ which corresponds to a descriptor binding with---     type---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'---     /must/ be a multiple of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minUniformBufferOffsetAlignment@------ -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972# Each element of---     @pDynamicOffsets@ which corresponds to a descriptor binding with---     type---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'---     /must/ be a multiple of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minStorageBufferOffsetAlignment@------ -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each---     dynamic uniform or storage buffer binding in @pDescriptorSets@, the---     sum of the effective offset, as defined above, and the range of the---     binding /must/ be less than or equal to the size of the buffer------ -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of---     @pDescriptorSets@ /must/ not have been allocated from a---     'Vulkan.Core10.Handles.DescriptorPool' with the---     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'---     flag set------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter#---     @pipelineBindPoint@ /must/ be a valid---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value------ -   #VUID-vkCmdBindDescriptorSets-layout-parameter# @layout@ /must/ be a---     valid 'Vulkan.Core10.Handles.PipelineLayout' handle------ -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter#---     @pDescriptorSets@ /must/ be a valid pointer to an array of---     @descriptorSetCount@ valid 'Vulkan.Core10.Handles.DescriptorSet'---     handles------ -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter# If---     @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a valid---     pointer to an array of @dynamicOffsetCount@ @uint32_t@ values------ -   #VUID-vkCmdBindDescriptorSets-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-vkCmdBindDescriptorSets-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#---     @descriptorSetCount@ /must/ be greater than @0@------ -   #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,---     @layout@, and the elements of @pDescriptorSets@ /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.DescriptorSet',--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',--- 'Vulkan.Core10.Handles.PipelineLayout'-cmdBindDescriptorSets :: forall io-                       . (MonadIO io)-                      => -- | @commandBuffer@ is the command buffer that the descriptor sets will be-                         -- bound to.-                         CommandBuffer-                      -> -- | @pipelineBindPoint@ is a-                         -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the-                         -- type of the pipeline that will use the descriptors. There is a separate-                         -- set of bind points for each pipeline type, so binding one does not-                         -- disturb the others.-                         PipelineBindPoint-                      -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to-                         -- program the bindings.-                         PipelineLayout-                      -> -- | @firstSet@ is the set number of the first descriptor set to be bound.-                         ("firstSet" ::: Word32)-                      -> -- | @pDescriptorSets@ is a pointer to an array of handles to-                         -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor-                         -- sets to bind to.-                         ("descriptorSets" ::: Vector DescriptorSet)-                      -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values-                         -- specifying dynamic offsets.-                         ("dynamicOffsets" ::: Vector Word32)-                      -> io ()-cmdBindDescriptorSets commandBuffer pipelineBindPoint layout firstSet descriptorSets dynamicOffsets = liftIO . evalContT $ do-  let vkCmdBindDescriptorSetsPtr = pVkCmdBindDescriptorSets (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBindDescriptorSetsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorSets is null" Nothing Nothing-  let vkCmdBindDescriptorSets' = mkVkCmdBindDescriptorSets vkCmdBindDescriptorSetsPtr-  pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)-  pPDynamicOffsets <- ContT $ allocaBytes @Word32 ((Data.Vector.length (dynamicOffsets)) * 4)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)-  lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (firstSet) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets) ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32)) (pPDynamicOffsets))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBindIndexBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()---- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer------ == Valid Usage------ -   #VUID-vkCmdBindIndexBuffer-offset-00431# @offset@ /must/ be less---     than the size of @buffer@------ -   #VUID-vkCmdBindIndexBuffer-offset-00432# The sum of @offset@ and the---     address of the range of 'Vulkan.Core10.Handles.DeviceMemory' object---     that is backing @buffer@, /must/ be a multiple of the type indicated---     by @indexType@------ -   #VUID-vkCmdBindIndexBuffer-buffer-00433# @buffer@ /must/ have been---     created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'---     flag------ -   #VUID-vkCmdBindIndexBuffer-buffer-00434# If @buffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBindIndexBuffer-indexType-02507# @indexType@ /must/ not---     be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'------ -   #VUID-vkCmdBindIndexBuffer-indexType-02765# If @indexType@ is---     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBindIndexBuffer-buffer-parameter# @buffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdBindIndexBuffer-indexType-parameter# @indexType@ /must/---     be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value------ -   #VUID-vkCmdBindIndexBuffer-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-vkCmdBindIndexBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBindIndexBuffer-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.IndexType.IndexType'-cmdBindIndexBuffer :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command is-                      -- recorded.-                      CommandBuffer-                   -> -- | @buffer@ is the buffer being bound.-                      Buffer-                   -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index-                      -- buffer address calculations.-                      ("offset" ::: DeviceSize)-                   -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value-                      -- specifying the size of the indices.-                      IndexType-                   -> io ()-cmdBindIndexBuffer commandBuffer buffer offset indexType = liftIO $ do-  let vkCmdBindIndexBufferPtr = pVkCmdBindIndexBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing-  let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr-  traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer' (commandBufferHandle (commandBuffer)) (buffer) (offset) (indexType))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBindVertexBuffers-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()---- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer------ = Description------ The values taken from elements i of @pBuffers@ and @pOffsets@ replace--- the current state for the vertex input binding @firstBinding@ + i, for i--- in [0, @bindingCount@). The vertex input binding is updated to start at--- the offset indicated by @pOffsets@[i] from the start of the buffer--- @pBuffers@[i]. All vertex input attributes that use each of these--- bindings will use these updated addresses in their address calculations--- for subsequent drawing commands. If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is enabled, elements of @pBuffers@ /can/ be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the--- vertex shader. If a vertex input attribute is bound to a vertex input--- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values--- taken from memory are considered to be zero, and missing G, B, or A--- components are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.------ == Valid Usage------ -   #VUID-vkCmdBindVertexBuffers-firstBinding-00624# @firstBinding@---     /must/ be less than---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ -   #VUID-vkCmdBindVertexBuffers-firstBinding-00625# The sum of---     @firstBinding@ and @bindingCount@ /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ -   #VUID-vkCmdBindVertexBuffers-pOffsets-00626# All elements of---     @pOffsets@ /must/ be less than the size of the corresponding element---     in @pBuffers@------ -   #VUID-vkCmdBindVertexBuffers-pBuffers-00627# All elements of---     @pBuffers@ /must/ have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'---     flag------ -   #VUID-vkCmdBindVertexBuffers-pBuffers-00628# Each element of---     @pBuffers@ that is non-sparse /must/ be bound completely and---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBindVertexBuffers-pBuffers-04001# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all elements of @pBuffers@ /must/ not be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdBindVertexBuffers-pBuffers-04002# If an element of---     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     corresponding element of @pOffsets@ /must/ be zero------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBindVertexBuffers-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBindVertexBuffers-pBuffers-parameter# @pBuffers@ /must/---     be a valid pointer to an array of @bindingCount@ valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE'---     'Vulkan.Core10.Handles.Buffer' handles------ -   #VUID-vkCmdBindVertexBuffers-pOffsets-parameter# @pOffsets@ /must/---     be a valid pointer to an array of @bindingCount@---     'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ -   #VUID-vkCmdBindVertexBuffers-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-vkCmdBindVertexBuffers-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBindVertexBuffers-bindingCount-arraylength#---     @bindingCount@ /must/ be greater than @0@------ -   #VUID-vkCmdBindVertexBuffers-commonparent# Both of @commandBuffer@,---     and the elements of @pBuffers@ that are valid handles of non-ignored---     parameters /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdBindVertexBuffers :: forall io-                      . (MonadIO io)-                     => -- | @commandBuffer@ is the command buffer into which the command is-                        -- recorded.-                        CommandBuffer-                     -> -- | @firstBinding@ is the index of the first vertex input binding whose-                        -- state is updated by the command.-                        ("firstBinding" ::: Word32)-                     -> -- | @pBuffers@ is a pointer to an array of buffer handles.-                        ("buffers" ::: Vector Buffer)-                     -> -- | @pOffsets@ is a pointer to an array of buffer offsets.-                        ("offsets" ::: Vector DeviceSize)-                     -> io ()-cmdBindVertexBuffers commandBuffer firstBinding buffers offsets = liftIO . evalContT $ do-  let vkCmdBindVertexBuffersPtr = pVkCmdBindVertexBuffers (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBindVertexBuffersPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers is null" Nothing Nothing-  let vkCmdBindVertexBuffers' = mkVkCmdBindVertexBuffers vkCmdBindVertexBuffersPtr-  let pBuffersLength = Data.Vector.length $ (buffers)-  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $-    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing-  pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)-  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 "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDraw-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()---- | vkCmdDraw - Draw primitives------ = Description------ When the command is executed, primitives are assembled using the current--- primitive topology and @vertexCount@ consecutive vertex indices with the--- first @vertexIndex@ value equal to @firstVertex@. The primitives are--- drawn @instanceCount@ times with @instanceIndex@ starting with--- @firstInstance@ and increasing sequentially for each instance. The--- assembled primitives execute the bound graphics pipeline.------ == Valid Usage------ -   #VUID-vkCmdDraw-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDraw-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDraw-None-06479# If a 'Vulkan.Core10.Handles.ImageView'---     is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ -   #VUID-vkCmdDraw-None-02691# If a 'Vulkan.Core10.Handles.ImageView'---     is accessed using atomic operations as a result of this command,---     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDraw-None-02692# If a 'Vulkan.Core10.Handles.ImageView'---     is sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDraw-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDraw-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a---     reduction mode of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image'---     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@---     containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDraw-OpTypeImage-06423# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being written as a storage image---     or storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDraw-OpTypeImage-06424# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being read as a storage image or---     storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDraw-None-02697# For each set /n/ that is statically used---     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point used by this command, a descriptor set /must/ have been bound---     to /n/ at the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set---     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push---     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to---     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 if they---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to---     the pipeline bind point used by this command------ -   #VUID-vkCmdDraw-None-02700# A valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDraw-commandBuffer-02701# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set or inherited (if the---     @VK_NV_inherited_viewport_scissor@ extension is enabled) for---     @commandBuffer@, and done so after any previously bound pipeline---     with the corresponding state not specified as dynamic------ -   #VUID-vkCmdDraw-None-02859# There /must/ not have been any calls to---     dynamic state setting commands for any state not specified as---     dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command, since that pipeline was---     bound------ -   #VUID-vkCmdDraw-None-02702# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a 'Vulkan.Core10.Handles.Sampler' object that uses---     unnormalized coordinates, that sampler /must/ not be used to sample---     from any 'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDraw-None-02703# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a 'Vulkan.Core10.Handles.Sampler' object that uses---     unnormalized coordinates, that sampler /must/ not be used with any---     of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@---     instructions with @ImplicitLod@, @Dref@ or @Proj@ in their name, in---     any shader stage------ -   #VUID-vkCmdDraw-None-02704# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a 'Vulkan.Core10.Handles.Sampler' object that uses---     unnormalized coordinates, that sampler /must/ not be used with any---     of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@---     instructions that includes a LOD bias or any offset values, in any---     shader stage------ -   #VUID-vkCmdDraw-None-02705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a uniform buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDraw-None-02706# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a storage buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource------ -   #VUID-vkCmdDraw-None-04115# If a 'Vulkan.Core10.Handles.ImageView'---     is accessed using @OpImageWrite@ as a result of this command, then---     the @Type@ of the @Texel@ operand of that instruction /must/ have at---     least as many components as the image view’s format------ -   #VUID-vkCmdDraw-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDraw-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDraw-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDraw-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDraw-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDraw-renderPass-02684# The current render pass /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDraw-subpass-02685# The subpass index of the current---     render pass /must/ be equal to the @subpass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDraw-None-02686# Every input attachment used by the---     current subpass /must/ be bound to the pipeline via a descriptor set------ -   #VUID-vkCmdDraw-None-04584# Image subresources used as attachments---     in the current render pass /must/ not be accessed in any way other---     than as an attachment by this command, except for cases involving---     read-only access to depth\/stencil attachments as described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>---     chapter------ -   #VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688# If the draw is---     recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDraw-sampleLocationsEnable-02689# If the bound graphics---     pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDraw-viewportCount-03417# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDraw-scissorCount-03418# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDraw-viewportCount-03419# If the bound graphics pipeline---     state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ -   #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDraw-viewportCount-04139# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDraw-viewportCount-04140# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04877# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-logicOp-04878# If the bound graphics pipeline state---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ be @1@------ -   #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled---     in the bound graphics pipeline, then for each color attachment in---     the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDraw-rasterizationSamples-04740# If rasterization is not---     disabled in the bound graphics pipeline, and neither the---     @VK_AMD_mixed_attachment_samples@ nor the---     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDraw-imageView-06172# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDraw-imageView-06173# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDraw-imageView-06174# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDraw-imageView-06175# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDraw-imageView-06176# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDraw-imageView-06177# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDraw-viewMask-06178# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ -   #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render---     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ -   #VUID-vkCmdDraw-colorAttachmentCount-06180# If the current render---     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDraw-pStencilAttachment-06182# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDraw-imageView-06183# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDraw-imageView-06184# If the current render pass instance---     was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDraw-colorAttachmentCount-06185# If the currently bound---     pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-pDepthAttachment-06186# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDraw-pStencilAttachment-06187# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDraw-colorAttachmentCount-06188# If the currently bound---     pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-pDepthAttachment-06189# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDraw-pStencilAttachment-06190# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDraw-renderPass-06198# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource written to by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be an unprotected resource------ -   #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, pipeline stages other than the framebuffer-space---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command /must/ not---     write to any resource------ -   #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of---     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point used by this command uses the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>---     capability, then @commandBuffer@ /must/ not be a protected command---     buffer------ -   #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDraw-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any---     attribute data fetched /must/ be entirely contained within the---     corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDraw-primitiveTopology-03420# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @primitiveTopology@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was---     created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not---     have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDraw-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-vkCmdDraw-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDraw-renderpass# This command /must/ only be called---     inside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDraw :: forall io-         . (MonadIO io)-        => -- | @commandBuffer@ is the command buffer into which the command is-           -- recorded.-           CommandBuffer-        -> -- | @vertexCount@ is the number of vertices to draw.-           ("vertexCount" ::: Word32)-        -> -- | @instanceCount@ is the number of instances to draw.-           ("instanceCount" ::: Word32)-        -> -- | @firstVertex@ is the index of the first vertex to draw.-           ("firstVertex" ::: Word32)-        -> -- | @firstInstance@ is the instance ID of the first instance to draw.-           ("firstInstance" ::: Word32)-        -> io ()-cmdDraw commandBuffer vertexCount instanceCount firstVertex firstInstance = liftIO $ do-  let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing-  let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr-  traceAroundEvent "vkCmdDraw" (vkCmdDraw' (commandBufferHandle (commandBuffer)) (vertexCount) (instanceCount) (firstVertex) (firstInstance))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawIndexed-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()---- | vkCmdDrawIndexed - Draw primitives with indexed vertices------ = Description------ When the command is executed, primitives are assembled using the current--- primitive topology and @indexCount@ vertices whose indices are retrieved--- from the index buffer. The index buffer is treated as an array of--- tightly packed unsigned integers of size defined by the--- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was--- bound.------ The first vertex index is at an offset of @firstIndex@ × @indexSize@ +--- @offset@ within the bound index buffer, where @offset@ is the offset--- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of--- the type specified by @indexType@. Subsequent index values are retrieved--- from consecutive locations in the index buffer. Indices are first--- compared to the primitive restart value, then zero extended to 32 bits--- (if the @indexType@ is--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have--- @vertexOffset@ added to them, before being supplied as the @vertexIndex@--- value.------ The primitives are drawn @instanceCount@ times with @instanceIndex@--- starting with @firstInstance@ and increasing sequentially for each--- instance. The assembled primitives execute the bound graphics pipeline.------ == Valid Usage------ -   #VUID-vkCmdDrawIndexed-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexed-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ -   #VUID-vkCmdDrawIndexed-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndexed-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexed-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a---     reduction mode of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexed-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-06423# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being written as a storage image---     or storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-06424# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being read as a storage image or---     storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexed-None-02697# For each set /n/ that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a descriptor set /must/---     have been bound to /n/ at the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set---     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push---     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to---     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---     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------ -   #VUID-vkCmdDrawIndexed-None-02700# A valid pipeline /must/ be bound---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02701# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set or inherited (if the---     @VK_NV_inherited_viewport_scissor@ extension is enabled) for---     @commandBuffer@, and done so after any previously bound pipeline---     with the corresponding state not specified as dynamic------ -   #VUID-vkCmdDrawIndexed-None-02859# There /must/ not have been any---     calls to dynamic state setting commands for any state not specified---     as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to---     the pipeline bind point used by this command, since that pipeline---     was bound------ -   #VUID-vkCmdDrawIndexed-None-02702# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDrawIndexed-None-02703# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDrawIndexed-None-02704# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDrawIndexed-None-02705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a uniform buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDrawIndexed-None-02706# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a storage buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource------ -   #VUID-vkCmdDrawIndexed-None-04115# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     image view’s format------ -   #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDrawIndexed-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexed-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexed-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexed-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexed-renderPass-02684# The current render pass---     /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexed-subpass-02685# The subpass index of the---     current render pass /must/ be equal to the @subpass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexed-None-02686# Every input attachment used by---     the current subpass /must/ be bound to the pipeline via a descriptor---     set------ -   #VUID-vkCmdDrawIndexed-None-04584# Image subresources used as---     attachments in the current render pass /must/ not be accessed in any---     way other than as an attachment by this command, except for cases---     involving read-only access to depth\/stencil attachments as---     described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>---     chapter------ -   #VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688# If the draw---     is recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689# If the bound---     graphics pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndexed-viewportCount-03417# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexed-scissorCount-03418# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexed-viewportCount-03419# If the bound graphics---     pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04139# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04140# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04877# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-logicOp-04878# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not---     disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexed-rasterizationSamples-04740# If rasterization---     is not disabled in the bound graphics pipeline, and neither the---     @VK_AMD_mixed_attachment_samples@ nor the---     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06173# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06174# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06175# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06176# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06177# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexed-viewMask-06178# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06180# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render---     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06182# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexed-imageView-06184# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06185# If the currently---     bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06186# If the current render---     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06187# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06188# If the currently---     bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06189# If the current render---     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06190# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource written to by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be an unprotected resource------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, pipeline stages other than the framebuffer-space---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command /must/ not---     write to any resource------ -   #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader---     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline---     bind point used by this command uses the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>---     capability, then @commandBuffer@ /must/ not be a protected command---     buffer------ -   #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings---     accessed via vertex input variables declared in the vertex shader---     entry point’s interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDrawIndexed-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer---     binding, any attribute data fetched /must/ be entirely contained---     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDrawIndexed-primitiveTopology-03420# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @primitiveTopology@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline---     was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline---     /must/ not have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ -   #VUID-vkCmdDrawIndexed-firstIndex-04932# (@indexSize@ ×---     (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or---     equal to the size of the bound index buffer, with @indexSize@ being---     based on the type specified by @indexType@, where the index buffer,---     @indexType@, and @offset@ are specified via 'cmdBindIndexBuffer'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be---     called inside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDrawIndexed :: forall io-                . (MonadIO io)-               => -- | @commandBuffer@ is the command buffer into which the command is-                  -- recorded.-                  CommandBuffer-               -> -- | @indexCount@ is the number of vertices to draw.-                  ("indexCount" ::: Word32)-               -> -- | @instanceCount@ is the number of instances to draw.-                  ("instanceCount" ::: Word32)-               -> -- | @firstIndex@ is the base index within the index buffer.-                  ("firstIndex" ::: Word32)-               -> -- | @vertexOffset@ is the value added to the vertex index before indexing-                  -- into the vertex buffer.-                  ("vertexOffset" ::: Int32)-               -> -- | @firstInstance@ is the instance ID of the first instance to draw.-                  ("firstInstance" ::: Word32)-               -> io ()-cmdDrawIndexed commandBuffer indexCount instanceCount firstIndex vertexOffset firstInstance = liftIO $ do-  let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawIndexedPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing-  let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr-  traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed' (commandBufferHandle (commandBuffer)) (indexCount) (instanceCount) (firstIndex) (vertexOffset) (firstInstance))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawIndirect-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawIndirect - Draw primitives with indirect parameters------ = Description------ 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the--- parameters are read by the device from a buffer during execution.--- @drawCount@ draws are executed by the command, with parameters taken--- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for--- each successive draw. The parameters of each draw are encoded in an--- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ -   #VUID-vkCmdDrawIndirect-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndirect-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ -   #VUID-vkCmdDrawIndirect-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndirect-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndirect-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a---     reduction mode of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndirect-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-06423# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being written as a storage image---     or storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-06424# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being read as a storage image or---     storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDrawIndirect-None-02697# For each set /n/ that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a descriptor set /must/---     have been bound to /n/ at the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set---     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push---     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to---     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---     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------ -   #VUID-vkCmdDrawIndirect-None-02700# A valid pipeline /must/ be bound---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndirect-commandBuffer-02701# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set or inherited (if the---     @VK_NV_inherited_viewport_scissor@ extension is enabled) for---     @commandBuffer@, and done so after any previously bound pipeline---     with the corresponding state not specified as dynamic------ -   #VUID-vkCmdDrawIndirect-None-02859# There /must/ not have been any---     calls to dynamic state setting commands for any state not specified---     as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to---     the pipeline bind point used by this command, since that pipeline---     was bound------ -   #VUID-vkCmdDrawIndirect-None-02702# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDrawIndirect-None-02703# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDrawIndirect-None-02704# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDrawIndirect-None-02705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a uniform buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDrawIndirect-None-02706# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a storage buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource------ -   #VUID-vkCmdDrawIndirect-None-04115# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     image view’s format------ -   #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDrawIndirect-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndirect-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndirect-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndirect-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndirect-renderPass-02684# The current render pass---     /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndirect-subpass-02685# The subpass index of the---     current render pass /must/ be equal to the @subpass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndirect-None-02686# Every input attachment used by---     the current subpass /must/ be bound to the pipeline via a descriptor---     set------ -   #VUID-vkCmdDrawIndirect-None-04584# Image subresources used as---     attachments in the current render pass /must/ not be accessed in any---     way other than as an attachment by this command, except for cases---     involving read-only access to depth\/stencil attachments as---     described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>---     chapter------ -   #VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688# If the draw---     is recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689# If the bound---     graphics pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndirect-viewportCount-03417# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndirect-scissorCount-03418# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndirect-viewportCount-03419# If the bound graphics---     pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04139# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04140# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04877# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-logicOp-04878# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not---     disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndirect-rasterizationSamples-04740# If rasterization---     is not disabled in the bound graphics pipeline, and neither the---     @VK_AMD_mixed_attachment_samples@ nor the---     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06173# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06174# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06175# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06176# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06177# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndirect-viewMask-06178# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06180# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06182# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDrawIndirect-imageView-06184# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06185# If the currently---     bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06186# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06187# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06188# If the currently---     bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06189# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06190# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass---     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings---     accessed via vertex input variables declared in the vertex shader---     entry point’s interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDrawIndirect-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer---     binding, any attribute data fetched /must/ be entirely contained---     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDrawIndirect-primitiveTopology-03420# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @primitiveTopology@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline---     was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline---     /must/ not have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ -   #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then---     it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been---     created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple---     of @4@------ -   #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/---     not be a protected command buffer------ -   #VUID-vkCmdDrawIndirect-drawCount-02718# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>---     feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ -   #VUID-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawIndirect-firstInstance-00478# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>---     feature is not enabled, all the @firstInstance@ members of the---     'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures accessed---     by this command /must/ be @0@------ -   #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater---     than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater---     than or equal to---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')------ -   #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to---     @1@, (@offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be---     less than or equal to the size of @buffer@------ -   #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater---     than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be---     less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid---     'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdDrawIndirect-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawIndirect :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command is-                   -- recorded.-                   CommandBuffer-                -> -- | @buffer@ is the buffer containing draw parameters.-                   Buffer-                -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.-                   ("offset" ::: DeviceSize)-                -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.-                   ("drawCount" ::: Word32)-                -> -- | @stride@ is the byte stride between successive sets of draw parameters.-                   ("stride" ::: Word32)-                -> io ()-cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do-  let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawIndirectPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing-  let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr-  traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawIndexedIndirect-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and--- indexed vertices------ = Description------ 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except--- that the parameters are read by the device from a buffer during--- execution. @drawCount@ draws are executed by the command, with--- parameters taken from @buffer@ starting at @offset@ and increasing by--- @stride@ bytes for each successive draw. The parameters of each draw are--- encoded in an array of--- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ -   #VUID-vkCmdDrawIndexedIndirect-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a---     reduction mode of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexedIndirect-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being written as a storage image---     or storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being read as a storage image or---     storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02697# For each set /n/ that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a descriptor set /must/---     have been bound to /n/ at the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set---     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push---     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to---     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---     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------ -   #VUID-vkCmdDrawIndexedIndirect-None-02700# A valid pipeline /must/---     be bound to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set or inherited (if the---     @VK_NV_inherited_viewport_scissor@ extension is enabled) for---     @commandBuffer@, and done so after any previously bound pipeline---     with the corresponding state not specified as dynamic------ -   #VUID-vkCmdDrawIndexedIndirect-None-02859# There /must/ not have---     been any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-02702# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-02703# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-02704# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-02705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a uniform buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDrawIndexedIndirect-None-02706# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a storage buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource------ -   #VUID-vkCmdDrawIndexedIndirect-None-04115# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     image view’s format------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexedIndirect-renderPass-02684# The current render---     pass /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexedIndirect-subpass-02685# The subpass index of---     the current render pass /must/ be equal to the @subpass@ member of---     the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02686# Every input attachment---     used by the current subpass /must/ be bound to the pipeline via a---     descriptor set------ -   #VUID-vkCmdDrawIndexedIndirect-None-04584# Image subresources used---     as attachments in the current render pass /must/ not be accessed in---     any way other than as an attachment by this command, except for---     cases involving read-only access to depth\/stencil attachments as---     described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>---     chapter------ -   #VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688# If---     the draw is recorded in a render pass instance with multiview---     enabled, the maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689# If the---     bound graphics pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If the bound---     graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04139# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04140# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from @VkPipelineVieportCreateInfo@, then the bound---     graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04877# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization---     is not disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740# If---     rasterization is not disabled in the bound graphics pipeline, and---     neither the @VK_AMD_mixed_attachment_samples@ nor the---     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06173# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06174# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06175# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06176# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06177# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-viewMask-06178# If the current render---     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@---     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06184# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185# If the---     currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188# If the---     currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190# If the---     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ -   #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current---     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings---     accessed via vertex input variables declared in the vertex shader---     entry point’s interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer---     binding, any attribute data fetched /must/ be entirely contained---     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @primitiveTopology@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics---     pipeline was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics---     pipeline /must/ not have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ -   #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have---     been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@---     /must/ not be a protected command buffer------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-02718# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>---     feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/---     be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is---     greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be---     greater than or equal to---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')------ -   #VUID-vkCmdDrawIndexedIndirect-firstInstance-00530# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>---     feature is not enabled, all the @firstInstance@ members of the---     'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures---     accessed by this command /must/ be @0@------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is---     equal to @1@, (@offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))---     /must/ be less than or equal to the size of @buffer@------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is---     greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))---     /must/ be less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be---     a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only---     be called inside of a render pass instance------ -   #VUID-vkCmdDrawIndexedIndirect-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawIndexedIndirect :: forall io-                        . (MonadIO io)-                       => -- | @commandBuffer@ is the command buffer into which the command is-                          -- recorded.-                          CommandBuffer-                       -> -- | @buffer@ is the buffer containing draw parameters.-                          Buffer-                       -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.-                          ("offset" ::: DeviceSize)-                       -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.-                          ("drawCount" ::: Word32)-                       -> -- | @stride@ is the byte stride between successive sets of draw parameters.-                          ("stride" ::: Word32)-                       -> io ()-cmdDrawIndexedIndirect commandBuffer buffer offset drawCount stride = liftIO $ do-  let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing-  let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr-  traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDispatch-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()---- | vkCmdDispatch - Dispatch compute work items------ = Description------ When the command is executed, a global workgroup consisting of--- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is--- assembled.------ == Valid Usage------ -   #VUID-vkCmdDispatch-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatch-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatch-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ -   #VUID-vkCmdDispatch-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDispatch-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDispatch-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatch-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a---     reduction mode of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image'---     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@---     containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDispatch-OpTypeImage-06423# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being written as a storage image---     or storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDispatch-OpTypeImage-06424# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being read as a storage image or---     storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDispatch-None-02697# For each set /n/ that is statically---     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline---     bind point used by this command, a descriptor set /must/ have been---     bound to /n/ at the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set---     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push---     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to---     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 if they---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to---     the pipeline bind point used by this command------ -   #VUID-vkCmdDispatch-None-02700# A valid pipeline /must/ be bound to---     the pipeline bind point used by this command------ -   #VUID-vkCmdDispatch-commandBuffer-02701# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set or inherited (if the---     @VK_NV_inherited_viewport_scissor@ extension is enabled) for---     @commandBuffer@, and done so after any previously bound pipeline---     with the corresponding state not specified as dynamic------ -   #VUID-vkCmdDispatch-None-02859# There /must/ not have been any calls---     to dynamic state setting commands for any state not specified as---     dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command, since that pipeline was---     bound------ -   #VUID-vkCmdDispatch-None-02702# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDispatch-None-02703# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDispatch-None-02704# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDispatch-None-02705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a uniform buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDispatch-None-02706# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a storage buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource------ -   #VUID-vkCmdDispatch-None-04115# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     image view’s format------ -   #VUID-vkCmdDispatch-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDispatch-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatch-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatch-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatch-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource written to by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be an unprotected resource------ -   #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, pipeline stages other than the framebuffer-space---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command /must/ not---     write to any resource------ -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages---     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point used by this command uses the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>---     capability, then @commandBuffer@ /must/ not be a protected command---     buffer------ -   #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]------ -   #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]------ -   #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDispatch-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-vkCmdDispatch-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdDispatch-renderpass# This command /must/ only be called---     outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Compute                                                                                                               |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDispatch :: forall io-             . (MonadIO io)-            => -- | @commandBuffer@ is the command buffer into which the command will be-               -- recorded.-               CommandBuffer-            -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X-               -- dimension.-               ("groupCountX" ::: Word32)-            -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y-               -- dimension.-               ("groupCountY" ::: Word32)-            -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z-               -- dimension.-               ("groupCountZ" ::: Word32)-            -> io ()-cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do-  let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDispatchPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing-  let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr-  traceAroundEvent "vkCmdDispatch" (vkCmdDispatch' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDispatchIndirect-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()---- | vkCmdDispatchIndirect - Dispatch compute work items with indirect--- parameters------ = Description------ 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' except that the--- parameters are read by the device from a buffer during execution. The--- parameters of the dispatch are encoded in a--- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand' structure taken from--- @buffer@ starting at @offset@.------ == Valid Usage------ -   #VUID-vkCmdDispatchIndirect-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ -   #VUID-vkCmdDispatchIndirect-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result---     of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a---     reduction mode of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatchIndirect-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-06423# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being written as a storage image---     or storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-06424# Any---     'Vulkan.Core10.Handles.ImageView' or---     'Vulkan.Core10.Handles.BufferView' being read as a storage image or---     storage texel buffer where the image format field of the---     @OpTypeImage@ is @Unknown@ /must/ have image format features that---     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ -   #VUID-vkCmdDispatchIndirect-None-02697# For each set /n/ that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a descriptor set /must/---     have been bound to /n/ at the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set---     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a---     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push---     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to---     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---     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------ -   #VUID-vkCmdDispatchIndirect-None-02700# A valid pipeline /must/ be---     bound to the pipeline bind point used by this command------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-02701# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set or inherited (if the---     @VK_NV_inherited_viewport_scissor@ extension is enabled) for---     @commandBuffer@, and done so after any previously bound pipeline---     with the corresponding state not specified as dynamic------ -   #VUID-vkCmdDispatchIndirect-None-02859# There /must/ not have been---     any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDispatchIndirect-None-02702# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDispatchIndirect-None-02703# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDispatchIndirect-None-02704# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDispatchIndirect-None-02705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a uniform buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDispatchIndirect-None-02706# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>---     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a storage buffer, it /must/ not access values outside of---     the range of the buffer as specified in the descriptor set bound to---     the same pipeline bind point------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource------ -   #VUID-vkCmdDispatchIndirect-None-04115# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     image view’s format------ -   #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDispatchIndirect-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatchIndirect-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatchIndirect-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatchIndirect-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been---     created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@---     /must/ not be a protected command buffer------ -   #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and---     the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'---     /must/ be less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdDispatchIndirect-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Compute                                                                                                               |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDispatchIndirect :: forall io-                     . (MonadIO io)-                    => -- | @commandBuffer@ is the command buffer into which the command will be-                       -- recorded.-                       CommandBuffer-                    -> -- | @buffer@ is the buffer containing dispatch parameters.-                       Buffer-                    -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.-                       ("offset" ::: DeviceSize)-                    -> io ()-cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do-  let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing-  let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr-  traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()---- | vkCmdCopyBuffer - Copy data between buffer regions------ = Description------ Each region in @pRegions@ is copied from the source buffer to the same--- region of the destination buffer. @srcBuffer@ and @dstBuffer@ /can/ be--- the same buffer or alias the same memory, but the resulting values are--- undefined if the copy regions overlap in memory.------ == Valid Usage------ -   #VUID-vkCmdCopyBuffer-commandBuffer-01822# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBuffer-commandBuffer-01823# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ -   #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of---     each element of @pRegions@ /must/ be less than the size of---     @srcBuffer@------ -   #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of---     each element of @pRegions@ /must/ be less than the size of---     @dstBuffer@------ -   #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element---     of @pRegions@ /must/ be less than or equal to the size of---     @srcBuffer@ minus @srcOffset@------ -   #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element---     of @pRegions@ /must/ be less than or equal to the size of---     @dstBuffer@ minus @dstOffset@------ -   #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source---     regions, and the union of the destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been---     created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been---     created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'BufferCopy'---     structures------ -   #VUID-vkCmdCopyBuffer-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-vkCmdCopyBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/---     be greater than @0@------ -   #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,---     @dstBuffer@, and @srcBuffer@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdCopyBuffer :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @srcBuffer@ is the source buffer.-                 ("srcBuffer" ::: Buffer)-              -> -- | @dstBuffer@ is the destination buffer.-                 ("dstBuffer" ::: Buffer)-              -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures-                 -- specifying the regions to copy.-                 ("regions" ::: Vector BufferCopy)-              -> io ()-cmdCopyBuffer commandBuffer srcBuffer dstBuffer regions = liftIO . evalContT $ do-  let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing-  let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr-  pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()---- | vkCmdCopyImage - Copy data between images------ = Description------ Each region in @pRegions@ is copied from the source image to the same--- region of the destination image. @srcImage@ and @dstImage@ /can/ be the--- same image or alias the same memory.------ The formats of @srcImage@ and @dstImage@ /must/ be compatible. Formats--- are compatible if they share the same class, as shown in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility Compatible Formats>--- table. Depth\/stencil formats /must/ match exactly.------ If either @srcImage@ or @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- regions of each plane to be copied /must/ be specified separately using--- the @srcSubresource@ and @dstSubresource@ members of the 'ImageCopy'--- structure. In this case, the @aspectMask@ of the @srcSubresource@ or--- @dstSubresource@ that refers to the multi-planar image /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For--- the purposes of 'cmdCopyImage', each plane of a multi-planar image is--- treated as having the format listed in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes>--- for the plane identified by the @aspectMask@ of the corresponding--- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'--- and to coordinates used in the copy, which correspond to texels in the--- /plane/ rather than how these texels map to coordinates in the image as--- a whole.------ Note------ For example, the--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' plane--- of a 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_420_UNORM' image--- is compatible with an image of format--- 'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM' and (less usefully) with--- the 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- plane of an image of format--- 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16',--- as each texel is 2 bytes in size.------ 'cmdCopyImage' allows copying between /size-compatible/ compressed and--- uncompressed internal formats. Formats are size-compatible if the texel--- block size of the uncompressed format is equal to the texel block size--- of the compressed format. Such a copy does not perform on-the-fly--- compression or decompression. When copying from an uncompressed format--- to a compressed format, each texel of uncompressed data of the source--- image is copied as a raw value to the corresponding compressed texel--- block of the destination image. When copying from a compressed format to--- an uncompressed format, each compressed texel block of the source image--- is copied as a raw value to the corresponding texel of uncompressed data--- in the destination image. Thus, for example, it is legal to copy between--- a 128-bit uncompressed format and a compressed format which has a--- 128-bit sized compressed texel block representing 4×4 texels (using 8--- bits per texel), or between a 64-bit uncompressed format and a--- compressed format which has a 64-bit sized compressed texel block--- representing 4×4 texels (using 4 bits per texel).------ When copying between compressed and uncompressed formats the @extent@--- members represent the texel dimensions of the source image and not the--- destination. When copying from a compressed image to an uncompressed--- image the image texel dimensions written to the uncompressed image will--- be source extent divided by the compressed texel block dimensions. When--- copying from an uncompressed image to a compressed image the image texel--- dimensions written to the compressed image will be the source extent--- multiplied by the compressed texel block dimensions. In both cases the--- number of bytes read and the number of bytes written will be identical.------ Copying to or from block-compressed images is typically done in--- multiples of the compressed texel block size. For this reason the--- @extent@ /must/ be a multiple of the compressed texel block dimension.--- There is one exception to this rule which is /required/ to handle--- compressed images created with dimensions that are not a multiple of the--- compressed texel block dimensions: if the @srcImage@ is compressed,--- then:------ -   If @extent.width@ is not a multiple of the compressed texel block---     width, then (@extent.width@ + @srcOffset.x@) /must/ equal the image---     subresource width.------ -   If @extent.height@ is not a multiple of the compressed texel block---     height, then (@extent.height@ + @srcOffset.y@) /must/ equal the---     image subresource height.------ -   If @extent.depth@ is not a multiple of the compressed texel block---     depth, then (@extent.depth@ + @srcOffset.z@) /must/ equal the image---     subresource depth.------ Similarly, if the @dstImage@ is compressed, then:------ -   If @extent.width@ is not a multiple of the compressed texel block---     width, then (@extent.width@ + @dstOffset.x@) /must/ equal the image---     subresource width.------ -   If @extent.height@ is not a multiple of the compressed texel block---     height, then (@extent.height@ + @dstOffset.y@) /must/ equal the---     image subresource height.------ -   If @extent.depth@ is not a multiple of the compressed texel block---     depth, then (@extent.depth@ + @dstOffset.z@) /must/ equal the image---     subresource depth.------ This allows the last compressed texel block of the image in each--- non-multiple dimension to be included as a source or destination of the--- copy.------ “@_422@” image formats that are not--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>--- are treated as having a 2×1 compressed texel block for the purposes of--- these rules.------ 'cmdCopyImage' /can/ be used to copy image data between multisample--- images, but both images /must/ have the same number of samples.------ == Valid Usage------ -   #VUID-vkCmdCopyImage-commandBuffer-01825# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImage-commandBuffer-01826# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdCopyImage-pRegions-00124# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyImage-srcImage-01995# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdCopyImage-srcImage-00126# @srcImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyImage-srcImage-01546# If @srcImage@ is non-sparse---     then the image or /disjoint/ plane to be copied /must/ be bound---     completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/---     specify the layout of the image subresources of @srcImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-vkCmdCopyImage-dstImage-01996# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdCopyImage-dstImage-00131# @dstImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyImage-dstImage-01547# If @dstImage@ is non-sparse---     then the image or /disjoint/ plane that is the destination of the---     copy /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/---     specify the layout of the image subresources of @dstImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-vkCmdCopyImage-srcImage-01548# If the---     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ is not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ /must/ be compatible, as defined---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>------ -   #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,---     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane---     /must/ be compatible according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>---     for the plane being copied------ -   #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@---     and @dstImage@ /must/ match------ -   #VUID-vkCmdCopyImage-srcSubresource-01696# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdCopyImage-dstSubresource-01697# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdCopyImage-srcSubresource-01698# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-vkCmdCopyImage-dstSubresource-01699# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@---     members of each element of @pRegions@ /must/ respect the image---     transfer granularity requirements of @commandBuffer@’s command---     pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@---     members of each element of @pRegions@ /must/ respect the image---     transfer granularity requirements of @commandBuffer@’s command---     pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyImage-dstImage-02542# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor---     @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     then for each element of @pRegions@, @srcSubresource.aspectMask@ and---     @dstSubresource.aspectMask@ /must/ match------ -   #VUID-vkCmdCopyImage-srcImage-01552# If @srcImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>---     then for each element of @pRegions@, @srcSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'------ -   #VUID-vkCmdCopyImage-srcImage-01553# If @srcImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>---     then for each element of @pRegions@, @srcSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-vkCmdCopyImage-dstImage-01554# If @dstImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>---     then for each element of @pRegions@, @dstSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'------ -   #VUID-vkCmdCopyImage-dstImage-01555# If @dstImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>---     then for each element of @pRegions@, @dstSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     and the @dstImage@ does not have a multi-planar image format, then---     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     and the @srcImage@ does not have a multi-planar image format, then---     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and---     @srcSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and---     @dstSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-vkCmdCopyImage-aspectMask-00143# For each element of---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-vkCmdCopyImage-srcOffset-00144# For each element of---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcOffset-00145# For each element of---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdCopyImage-srcOffset-00147# For each element of---     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@------ -   #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@------ -   #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@---     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then---     for each element of @pRegions@, @extent.depth@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @extent.depth@ /must/ equal---     @srcSubresource.layerCount@------ -   #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @extent.depth@ /must/ equal---     @dstSubresource.layerCount@------ -   #VUID-vkCmdCopyImage-dstOffset-00150# For each element of---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-dstOffset-00151# For each element of---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdCopyImage-dstOffset-00153# For each element of---     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-srcImage-01727# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, all members of @srcOffset@---     /must/ be a multiple of the corresponding dimensions of the---     compressed texel block------ -   #VUID-vkCmdCopyImage-srcImage-01728# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.width@ /must/ be a---     multiple of the compressed texel block width or (@extent.width@ +---     @srcOffset.x@) /must/ equal the width of the specified---     @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01729# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.height@ /must/ be a---     multiple of the compressed texel block height or (@extent.height@ +---     @srcOffset.y@) /must/ equal the height of the specified---     @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01730# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@extent.depth@ +---     @srcOffset.z@) /must/ equal the depth of the specified---     @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-dstImage-01731# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, all members of @dstOffset@---     /must/ be a multiple of the corresponding dimensions of the---     compressed texel block------ -   #VUID-vkCmdCopyImage-dstImage-01732# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.width@ /must/ be a---     multiple of the compressed texel block width or (@extent.width@ +---     @dstOffset.x@) /must/ equal the width of the specified---     @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-01733# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.height@ /must/ be a---     multiple of the compressed texel block height or (@extent.height@ +---     @dstOffset.y@) /must/ equal the height of the specified---     @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-01734# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@extent.depth@ +---     @dstOffset.z@) /must/ equal the depth of the specified---     @dstSubresource@ of @dstImage@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageCopy'---     structures------ -   #VUID-vkCmdCopyImage-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-vkCmdCopyImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/---     be greater than @0@------ -   #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyImage :: forall io-              . (MonadIO io)-             => -- | @commandBuffer@ is the command buffer into which the command will be-                -- recorded.-                CommandBuffer-             -> -- | @srcImage@ is the source image.-                ("srcImage" ::: Image)-             -> -- | @srcImageLayout@ is the current layout of the source image subresource.-                ("srcImageLayout" ::: ImageLayout)-             -> -- | @dstImage@ is the destination image.-                ("dstImage" ::: Image)-             -> -- | @dstImageLayout@ is the current layout of the destination image-                -- subresource.-                ("dstImageLayout" ::: ImageLayout)-             -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying-                -- the regions to copy.-                ("regions" ::: Vector ImageCopy)-             -> io ()-cmdCopyImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do-  let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing-  let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr-  pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBlitImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()---- | vkCmdBlitImage - Copy regions of an image, potentially performing format--- conversion,------ = Description------ 'cmdBlitImage' /must/ not be used for multisampled source or destination--- images. Use 'cmdResolveImage' for this purpose.------ As the sizes of the source and destination extents /can/ differ in any--- dimension, texels in the source extent are scaled and filtered to the--- destination extent. Scaling occurs via the following operations:------ -   For each destination texel, the integer coordinate of that texel is---     converted to an unnormalized texture coordinate, using the effective---     inverse of the equations described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:------     -   ubase = i + ½------     -   vbase = j + ½------     -   wbase = k + ½------ -   These base coordinates are then offset by the first destination---     offset:------     -   uoffset = ubase - xdst0------     -   voffset = vbase - ydst0------     -   woffset = wbase - zdst0------     -   aoffset = a - @baseArrayCount@dst------ -   The scale is determined from the source and destination regions, and---     applied to the offset coordinates:------     -   scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)------     -   scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)------     -   scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)------     -   uscaled = uoffset × scaleu------     -   vscaled = voffset × scalev------     -   wscaled = woffset × scalew------ -   Finally the source offset is added to the scaled coordinates, to---     determine the final unnormalized coordinates used to sample from---     @srcImage@:------     -   u = uscaled + xsrc0------     -   v = vscaled + ysrc0------     -   w = wscaled + zsrc0------     -   q = @mipLevel@------     -   a = aoffset + @baseArrayCount@src------ These coordinates are used to sample from the source image, as described--- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures Image Operations chapter>,--- with the filter mode equal to that of @filter@, a mipmap mode of--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and--- an address mode of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.--- Implementations /must/ clamp at the edge of the source image, and /may/--- additionally clamp to the edge of the source region.------ Note------ Due to allowable rounding errors in the generation of the source texture--- coordinates, it is not always possible to guarantee exactly which source--- texels will be sampled for a given blit. As rounding errors are--- implementation-dependent, the exact results of a blitting operation are--- also implementation-dependent.------ Blits are done layer by layer starting with the @baseArrayLayer@ member--- of @srcSubresource@ for the source and @dstSubresource@ for the--- destination. @layerCount@ layers are blitted to the destination image.------ When blitting 3D textures, slices in the destination region bounded by--- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the--- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the--- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then--- the value sampled from the source image is taken by doing linear--- filtering using the interpolated __z__ coordinate represented by __w__--- in the previous equations. If the @filter@ parameter is--- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from--- the source image is taken from the single nearest slice, with an--- implementation-dependent arithmetic rounding mode.------ The following filtering and conversion rules apply:------ -   Integer formats /can/ only be converted to other integer formats---     with the same signedness.------ -   No format conversion is supported between depth\/stencil images. The---     formats /must/ match.------ -   Format conversions on unorm, snorm, unscaled and packed float---     formats of the copied aspect of the image are performed by first---     converting the pixels to float values.------ -   For sRGB source formats, nonlinear RGB values are converted to---     linear representation prior to filtering.------ -   After filtering, the float values are first clamped and then cast to---     the destination image format. In case of sRGB destination format,---     linear RGB values are converted to nonlinear representation before---     writing the pixel to the image.------ Signed and unsigned integers are converted by first clamping to the--- representable range of the destination format, then casting the value.------ == Valid Usage------ -   #VUID-vkCmdBlitImage-commandBuffer-01834# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdBlitImage-commandBuffer-01835# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by---     each element of @pRegions@ /must/ be a region that is contained---     within @srcImage@------ -   #VUID-vkCmdBlitImage-pRegions-00216# The destination region---     specified by each element of @pRegions@ /must/ be a region that is---     contained within @dstImage@------ -   #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination---     regions, specified by the elements of @pRegions@, /must/ not overlap---     in memory with any texel that /may/ be sampled during the blit---     operation------ -   #VUID-vkCmdBlitImage-srcImage-01999# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'------ -   #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>------ -   #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/---     specify the layout of the image subresources of @srcImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdBlitImage-dstImage-02000# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'------ -   #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>------ -   #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/---     specify the layout of the image subresources of @dstImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or---     @dstImage@ was created with a signed integer---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been---     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or---     @dstImage@ was created with an unsigned integer---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been---     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or---     @dstImage@ was created with a depth\/stencil format, the other---     /must/ have exactly the same format------ -   #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with---     a depth\/stencil format, @filter@ /must/ be---     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'------ -   #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been---     created with a @samples@ value of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been---     created with a @samples@ value of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdBlitImage-filter-02001# If @filter@ is---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdBlitImage-filter-02002# If @filter@ is---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@---     /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-vkCmdBlitImage-srcSubresource-01705# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdBlitImage-dstSubresource-01706# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdBlitImage-srcSubresource-01707# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-vkCmdBlitImage-dstSubresource-01708# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or---     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',---     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@---     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and---     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/---     each be @1@------ -   #VUID-vkCmdBlitImage-aspectMask-00241# For each element of---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-vkCmdBlitImage-aspectMask-00242# For each element of---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-vkCmdBlitImage-srcOffset-00243# For each element of---     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be---     greater than or equal to @0@ and less than or equal to the width of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdBlitImage-srcOffset-00244# For each element of---     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be---     greater than or equal to @0@ and less than or equal to the height of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y---     /must/ be @1@------ -   #VUID-vkCmdBlitImage-srcOffset-00246# For each element of---     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be---     greater than or equal to @0@ and less than or equal to the depth of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z---     /must/ be @1@------ -   #VUID-vkCmdBlitImage-dstOffset-00248# For each element of---     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be---     greater than or equal to @0@ and less than or equal to the width of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdBlitImage-dstOffset-00249# For each element of---     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be---     greater than or equal to @0@ and less than or equal to the height of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y---     /must/ be @1@------ -   #VUID-vkCmdBlitImage-dstOffset-00251# For each element of---     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be---     greater than or equal to @0@ and less than or equal to the depth of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z---     /must/ be @1@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageBlit'---     structures------ -   #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid---     'Vulkan.Core10.Enums.Filter.Filter' value------ -   #VUID-vkCmdBlitImage-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-vkCmdBlitImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/---     be greater than @0@------ -   #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',--- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdBlitImage :: forall io-              . (MonadIO io)-             => -- | @commandBuffer@ is the command buffer into which the command will be-                -- recorded.-                CommandBuffer-             -> -- | @srcImage@ is the source image.-                ("srcImage" ::: Image)-             -> -- | @srcImageLayout@ is the layout of the source image subresources for the-                -- blit.-                ("srcImageLayout" ::: ImageLayout)-             -> -- | @dstImage@ is the destination image.-                ("dstImage" ::: Image)-             -> -- | @dstImageLayout@ is the layout of the destination image subresources for-                -- the blit.-                ("dstImageLayout" ::: ImageLayout)-             -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying-                -- the regions to blit.-                ("regions" ::: Vector ImageBlit)-             -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter-                -- to apply if the blits require scaling.-                Filter-             -> io ()-cmdBlitImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions filter' = liftIO . evalContT $ do-  let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing-  let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr-  pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)-  lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions) (filter'))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyBufferToImage-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()---- | vkCmdCopyBufferToImage - Copy data from a buffer into an image------ = Description------ Each region in @pRegions@ is copied from the specified region of the--- source buffer to the specified region of the destination image.------ If @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- regions of each plane to be a target of a copy /must/ be specified--- separately using the @pRegions@ member of the 'BufferImageCopy'--- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/--- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For--- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar--- image is treated as having the format listed in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes>--- for the plane identified by the @aspectMask@ of the corresponding--- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'--- and to coordinates used in the copy, which correspond to texels in the--- /plane/ rather than how these texels map to coordinates in the image as--- a whole.------ == Valid Usage------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdCopyBufferToImage-pRegions-06217# The image region---     specified by each element of @pRegions@ /must/ be contained within---     the specified @imageSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be---     large enough to contain all buffer locations that are accessed---     according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/---     have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyBufferToImage-dstImage-01997# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00178# If @dstImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00179# @dstImage@ /must/ have---     a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-01701# The---     @imageSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-01702# The---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-vkCmdCopyBufferToImage-imageOffset-01793# The @imageOffset@---     and @imageExtent@ members of each element of @pRegions@ /must/---     respect the image transfer granularity requirements of---     @commandBuffer@’s command pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyBufferToImage-dstImage-02543# @dstImage@ /must/ not---     have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04477# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each---     element of @pRegions@, the @aspectMask@ member of @imageSubresource@---     /must/ not be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-vkCmdCopyBufferToImage-pRegions-06218# For each element of---     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and---     less than or equal to the width of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-06219# For each element of---     @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and---     less than or equal to the height of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does---     not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01559# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   #VUID-vkCmdCopyBufferToImage-srcImage-00199# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and---     @imageExtent.height@ /must/ be @1@------ -   #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of---     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and---     less than or equal to the depth of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-srcImage-00201# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@---     /must/ be @1@------ -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-00203# If @dstImage@ is---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ /must/ be a---     multiple of the compressed texel block width------ -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# If @dstImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferImageHeight@ /must/ be a---     multiple of the compressed texel block height------ -   #VUID-vkCmdCopyBufferToImage-imageOffset-00205# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, all members of @imageOffset@ /must/---     be a multiple of the corresponding dimensions of the compressed---     texel block------ -   #VUID-vkCmdCopyBufferToImage-bufferOffset-00206# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple---     of the compressed texel block size in bytes------ -   #VUID-vkCmdCopyBufferToImage-imageExtent-00207# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.width@ /must/ be a---     multiple of the compressed texel block width or (@imageExtent.width@---     + @imageOffset.x@) /must/ equal the width of the specified---     @imageSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageExtent-00208# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.height@ /must/ be a---     multiple of the compressed texel block height or---     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of---     the specified @imageSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageExtent-00209# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@imageExtent.depth@---     + @imageOffset.z@) /must/ equal the depth of the specified---     @imageSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-aspectMask-00211# For each element of---     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-aspectMask-01560# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @imageSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     (with---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     valid only for image formats with three planes)------ -   #VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213# If @dstImage@ is---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each---     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be---     @0@ and @imageSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-04725# If @dstImage@ is not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ multiplied by the---     texel block size of @dstImage@ /must/ be less than or equal to 231-1------ -   #VUID-vkCmdCopyBufferToImage-pRegions-04726# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ divided by the---     compressed texel block width and then multiplied by the texel block---     size of @dstImage@ /must/ be less than or equal to 231-1------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a---     depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/---     be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#---     @dstImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/---     be a valid pointer to an array of @regionCount@ valid---     'BufferImageCopy' structures------ -   #VUID-vkCmdCopyBufferToImage-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-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcBuffer@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyBufferToImage :: forall io-                      . (MonadIO io)-                     => -- | @commandBuffer@ is the command buffer into which the command will be-                        -- recorded.-                        CommandBuffer-                     -> -- | @srcBuffer@ is the source buffer.-                        ("srcBuffer" ::: Buffer)-                     -> -- | @dstImage@ is the destination image.-                        ("dstImage" ::: Image)-                     -> -- | @dstImageLayout@ is the layout of the destination image subresources for-                        -- the copy.-                        ("dstImageLayout" ::: ImageLayout)-                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures-                        -- specifying the regions to copy.-                        ("regions" ::: Vector BufferImageCopy)-                     -> io ()-cmdCopyBufferToImage commandBuffer srcBuffer dstImage dstImageLayout regions = liftIO . evalContT $ do-  let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing-  let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr-  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyImageToBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()---- | vkCmdCopyImageToBuffer - Copy image data into a buffer------ = Description------ Each region in @pRegions@ is copied from the specified region of the--- source image to the specified region of the destination buffer.------ If @srcImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- regions of each plane to be a source of a copy /must/ be specified--- separately using the @pRegions@ member of the 'BufferImageCopy'--- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/--- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For--- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar--- image is treated as having the format listed in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes>--- for the plane identified by the @aspectMask@ of the corresponding--- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'--- and to coordinates used in the copy, which correspond to texels in the--- /plane/ rather than how these texels map to coordinates in the image as--- a whole.------ == Valid Usage------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-06220# The image region---     specified by each element of @pRegions@ /must/ be contained within---     the specified @imageSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be---     large enough to contain all buffer locations that are accessed---     according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00187# If @srcImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/---     have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00188# @srcImage@ /must/ have---     a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-01703# The---     @imageSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-01704# The---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-vkCmdCopyImageToBuffer-imageOffset-01794# The @imageOffset@---     and @imageExtent@ members of each element of @pRegions@ /must/---     respect the image transfer granularity requirements of---     @commandBuffer@’s command pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-02544# @srcImage@ /must/ not---     have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-06221# For each element of---     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and---     less than or equal to the width of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-06222# For each element of---     @pRegions@, @imageOffset.y@ and (imageExtent.height +---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and---     less than or equal to the height of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does---     not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01559# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00199# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and---     @imageExtent.height@ /must/ be @1@------ -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of---     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and---     less than or equal to the depth of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00201# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@---     /must/ be @1@------ -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203# If @srcImage@ is---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ /must/ be a---     multiple of the compressed texel block width------ -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# If @srcImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferImageHeight@ /must/ be a---     multiple of the compressed texel block height------ -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00205# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, all members of @imageOffset@ /must/---     be a multiple of the corresponding dimensions of the compressed---     texel block------ -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-00206# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple---     of the compressed texel block size in bytes------ -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.width@ /must/ be a---     multiple of the compressed texel block width or (@imageExtent.width@---     + @imageOffset.x@) /must/ equal the width of the specified---     @imageSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.height@ /must/ be a---     multiple of the compressed texel block height or---     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of---     the specified @imageSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@imageExtent.depth@---     + @imageOffset.z@) /must/ equal the depth of the specified---     @imageSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-aspectMask-00211# For each element of---     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-aspectMask-01560# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @imageSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     (with---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     valid only for image formats with three planes)------ -   #VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213# If @srcImage@ is---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each---     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be---     @0@ and @imageSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-04725# If @srcImage@ is not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ multiplied by the---     texel block size of @srcImage@ /must/ be less than or equal to 231-1------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-04726# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ divided by the---     compressed texel block width and then multiplied by the texel block---     size of @srcImage@ /must/ be less than or equal to 231-1------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-04052# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a---     depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/---     be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#---     @srcImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/---     be a valid pointer to an array of @regionCount@ valid---     'BufferImageCopy' structures------ -   #VUID-vkCmdCopyImageToBuffer-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-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,---     @dstBuffer@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyImageToBuffer :: forall io-                      . (MonadIO io)-                     => -- | @commandBuffer@ is the command buffer into which the command will be-                        -- recorded.-                        CommandBuffer-                     -> -- | @srcImage@ is the source image.-                        ("srcImage" ::: Image)-                     -> -- | @srcImageLayout@ is the layout of the source image subresources for the-                        -- copy.-                        ("srcImageLayout" ::: ImageLayout)-                     -> -- | @dstBuffer@ is the destination buffer.-                        ("dstBuffer" ::: Buffer)-                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures-                        -- specifying the regions to copy.-                        ("regions" ::: Vector BufferImageCopy)-                     -> io ()-cmdCopyImageToBuffer commandBuffer srcImage srcImageLayout dstBuffer regions = liftIO . evalContT $ do-  let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing-  let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr-  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdUpdateBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()---- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory------ = Description------ @dataSize@ /must/ be less than or equal to 65536 bytes. For larger--- updates, applications /can/ use buffer to buffer--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers copies>.------ Note------ Buffer updates performed with 'cmdUpdateBuffer' first copy the data into--- command buffer memory when the command is recorded (which requires--- additional storage and may incur an additional allocation), and then--- copy the data from the command buffer into @dstBuffer@ when the command--- is executed on a device.------ The additional cost of this functionality compared to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>--- means it is only recommended for very small amounts of data, and is why--- it is limited to only 65536 bytes.------ Applications /can/ work around this by issuing multiple--- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but--- it is strongly recommended that they /should/ not.------ The source data is copied from the user pointer to the command buffer--- when the command is called.------ 'cmdUpdateBuffer' is only allowed outside of a render pass. This command--- is treated as “transfer” operation, for the purposes of synchronization--- barriers. The--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- /must/ be specified in @usage@ of--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be--- compatible with 'cmdUpdateBuffer'.------ == Valid Usage------ -   #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less---     than the size of @dstBuffer@------ -   #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less---     than or equal to the size of @dstBuffer@ minus @dstOffset@------ -   #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have---     been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less---     than or equal to @65536@------ -   #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid---     pointer to an array of @dataSize@ bytes------ -   #VUID-vkCmdUpdateBuffer-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-vkCmdUpdateBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be---     greater than @0@------ -   #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and---     @dstBuffer@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdUpdateBuffer :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command will be-                   -- recorded.-                   CommandBuffer-                -> -- | @dstBuffer@ is a handle to the buffer to be updated.-                   ("dstBuffer" ::: Buffer)-                -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and-                   -- /must/ be a multiple of 4.-                   ("dstOffset" ::: DeviceSize)-                -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of-                   -- 4.-                   ("dataSize" ::: DeviceSize)-                -> -- | @pData@ is a pointer to the source data for the buffer update, and-                   -- /must/ be at least @dataSize@ bytes in size.-                   ("data" ::: Ptr ())-                -> io ()-cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do-  let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdUpdateBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing-  let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr-  traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (dataSize) (data'))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdFillBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()---- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value------ = Description------ 'cmdFillBuffer' is treated as “transfer” operation for the purposes of--- synchronization barriers. The--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- /must/ be specified in @usage@ of--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be--- compatible with 'cmdFillBuffer'.------ == Valid Usage------ -   #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less---     than the size of @dstBuffer@------ -   #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater---     than @0@------ -   #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than---     or equal to the size of @dstBuffer@ minus @dstOffset@------ -   #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple---     of @4@------ -   #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been---     created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ -   #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdFillBuffer-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-vkCmdFillBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics or compute---     operations------ -   #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and---     @dstBuffer@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdFillBuffer :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @dstBuffer@ is the buffer to be filled.-                 ("dstBuffer" ::: Buffer)-              -> -- | @dstOffset@ is the byte offset into the buffer at which to start-                 -- filling, and /must/ be a multiple of 4.-                 ("dstOffset" ::: DeviceSize)-              -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple-                 -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from-                 -- @offset@ to the end of the buffer. If-                 -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size-                 -- of the buffer is not a multiple of 4, then the nearest smaller multiple-                 -- is used.-                 DeviceSize-              -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill-                 -- @size@ bytes of data. The data word is written to memory according to-                 -- the host endianness.-                 ("data" ::: Word32)-              -> io ()-cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do-  let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdFillBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing-  let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr-  traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (size) (data'))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdClearColorImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()---- | vkCmdClearColorImage - Clear regions of a color image------ = Description------ Each specified range in @pRanges@ is cleared to the value specified by--- @pColor@.------ == Valid Usage------ -   #VUID-vkCmdClearColorImage-image-01993# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @image@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any---     of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>------ -   #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/---     specify the layout of the image subresource ranges of @image@---     specified in @pRanges@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-vkCmdClearColorImage-aspectMask-02498# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@---     members of the elements of the @pRanges@ array /must/ each only---     include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-vkCmdClearColorImage-baseMipLevel-01470# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearColorImage-pRanges-01692# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @levelCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then---     @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was---     created------ -   #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearColorImage-pRanges-01693# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @layerCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then---     @baseArrayLayer@ + @layerCount@ /must/ be less than the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a---     compressed or depth\/stencil format------ -   #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid---     pointer to a 'ClearColorValue' union------ -   #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @image@ /must/ not be a protected image------ -   #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a---     valid pointer to an array of @rangeCount@ valid---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures------ -   #VUID-vkCmdClearColorImage-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-vkCmdClearColorImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,---     and @image@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'-cmdClearColorImage :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command will be-                      -- recorded.-                      CommandBuffer-                   -> -- | @image@ is the image to be cleared.-                      Image-                   -> -- | @imageLayout@ specifies the current layout of the image subresource-                      -- ranges to be cleared, and /must/ be-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.-                      ImageLayout-                   -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the-                      -- values that the image subresource ranges will be cleared to (see-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears-values>-                      -- below).-                      ClearColorValue-                   -> -- | @pRanges@ is a pointer to an array of-                      -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a-                      -- range of mipmap levels, array layers, and aspects to be cleared, as-                      -- described in-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views Image Views>.-                      ("ranges" ::: Vector ImageSubresourceRange)-                   -> io ()-cmdClearColorImage commandBuffer image imageLayout color ranges = liftIO . evalContT $ do-  let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing-  let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr-  pColor <- ContT $ withCStruct (color)-  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)-  lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pColor ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdClearDepthStencilImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()---- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil--- image------ == Valid Usage------ -   #VUID-vkCmdClearDepthStencilImage-image-01994# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @image@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@---     member of any element of @pRanges@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @image@ was created with---     <VkImageStencilUsageCreateInfo.html separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@---     used to create @image@------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@---     member of any element of @pRanges@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @image@ was not created with---     <VkImageStencilUsageCreateInfo.html separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @image@------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@---     member of any element of @pRanges@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @image@------ -   #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@---     /must/ specify the layout of the image subresource ranges of @image@---     specified in @pRanges@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@---     /must/ be either of---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member---     of each element of the @pRanges@ array /must/ not include bits other---     than---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s---     format does not have a stencil component, then the---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member---     of each element of the @pRanges@ array /must/ not include the---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---     bit------ -   #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s---     format does not have a depth component, then the---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member---     of each element of the @pRanges@ array /must/ not include the---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit------ -   #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @levelCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then---     @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was---     created------ -   #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @layerCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then---     @baseArrayLayer@ + @layerCount@ /must/ be less than the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a---     depth\/stencil format------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @image@ /must/ not be a protected image------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If---     @commandBuffer@ is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @image@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be---     a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#---     @imageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#---     @pDepthStencil@ /must/ be a valid pointer to a valid---     'ClearDepthStencilValue' structure------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@---     /must/ be a valid pointer to an array of @rangeCount@ valid---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures------ -   #VUID-vkCmdClearDepthStencilImage-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-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/---     only be called outside of a render pass instance------ -   #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#---     @rangeCount@ /must/ be greater than @0@------ -   #VUID-vkCmdClearDepthStencilImage-commonparent# Both of---     @commandBuffer@, and @image@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'-cmdClearDepthStencilImage :: forall io-                           . (MonadIO io)-                          => -- | @commandBuffer@ is the command buffer into which the command will be-                             -- recorded.-                             CommandBuffer-                          -> -- | @image@ is the image to be cleared.-                             Image-                          -> -- | @imageLayout@ specifies the current layout of the image subresource-                             -- ranges to be cleared, and /must/ be-                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or-                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.-                             ImageLayout-                          -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure-                             -- containing the values that the depth and stencil image subresource-                             -- ranges will be cleared to (see-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears-values>-                             -- below).-                             ClearDepthStencilValue-                          -> -- | @pRanges@ is a pointer to an array of-                             -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a-                             -- range of mipmap levels, array layers, and aspects to be cleared, as-                             -- described in-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views Image Views>.-                             ("ranges" ::: Vector ImageSubresourceRange)-                          -> io ()-cmdClearDepthStencilImage commandBuffer image imageLayout depthStencil ranges = liftIO . evalContT $ do-  let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing-  let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr-  pDepthStencil <- ContT $ withCStruct (depthStencil)-  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)-  lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pDepthStencil ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdClearAttachments-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()---- | vkCmdClearAttachments - Clear regions within bound framebuffer--- attachments------ = Description------ If the render pass has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,--- clears follow the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>--- as if each clear region was a primitive which generates fragments. The--- clear color is applied to all pixels inside each fragment’s area--- regardless if the pixels lie outside of the clear region. Clears /may/--- have a different set of supported fragment areas than draws.------ Unlike other--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>,--- 'cmdClearAttachments' executes as a drawing command, rather than a--- transfer command, with writes performed by it executing in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-order rasterization order>.--- Clears to color attachments are executed as color attachment writes, by--- the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'--- stage. Clears to depth\/stencil attachments are executed as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth depth writes>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil writes>--- by the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'--- and--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'--- stages.------ 'cmdClearAttachments' is not affected by the bound pipeline state.------ Note------ It is generally preferable to clear attachments by using the--- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load--- operation at the start of rendering, as it is more efficient on some--- implementations.------ == Valid Usage------ -   #VUID-vkCmdClearAttachments-aspectMask-02501# If the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',---     then the @colorAttachment@ member of that element /must/ either---     refer to a color attachment which is---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ be a valid---     color attachment------ -   #VUID-vkCmdClearAttachments-aspectMask-02502# If the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',---     then the current subpass\' depth\/stencil attachment /must/ either---     be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a---     depth component------ -   #VUID-vkCmdClearAttachments-aspectMask-02503# If the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     then the current subpass\' depth\/stencil attachment /must/ either---     be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a---     stencil component------ -   #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each---     element of @pRects@ /must/ have an @extent.width@ greater than @0@------ -   #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each---     element of @pRects@ /must/ have an @extent.height@ greater than @0@------ -   #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region---     specified by each element of @pRects@ /must/ be contained within the---     render area of the current render pass instance------ -   #VUID-vkCmdClearAttachments-pRects-00017# The layers specified by---     each element of @pRects@ /must/ be contained within every attachment---     that @pAttachments@ refers to------ -   #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@---     member of each element of @pRects@ /must/ not be @0@------ -   #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each attachment to be cleared /must/ not be a---     protected image------ -   #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each attachment to be cleared /must/ not be an---     unprotected image------ -   #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass---     instance this is recorded in uses multiview, then @baseArrayLayer@---     /must/ be zero and @layerCount@ /must/ be one------ == Valid Usage (Implicit)------ -   #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@---     /must/ be a valid pointer to an array of @attachmentCount@ valid---     'ClearAttachment' structures------ -   #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a---     valid pointer to an array of @rectCount@ 'ClearRect' structures------ -   #VUID-vkCmdClearAttachments-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-vkCmdClearAttachments-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdClearAttachments-attachmentCount-arraylength#---     @attachmentCount@ /must/ be greater than @0@------ -   #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@---     /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#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'-cmdClearAttachments :: forall io-                     . (MonadIO io)-                    => -- | @commandBuffer@ is the command buffer into which the command will be-                       -- recorded.-                       CommandBuffer-                    -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures-                       -- defining the attachments to clear and the clear values to use. If any-                       -- attachment index to be cleared is not backed by an image view, then the-                       -- clear has no effect.-                       ("attachments" ::: Vector ClearAttachment)-                    -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining-                       -- regions within each selected attachment to clear.-                       ("rects" ::: Vector ClearRect)-                    -> io ()-cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do-  let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing-  let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr-  pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)-  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)-  pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)-  lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32)) (pPAttachments) ((fromIntegral (Data.Vector.length $ (rects)) :: Word32)) (pPRects))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResolveImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()---- | vkCmdResolveImage - Resolve regions of an image------ = Description------ During the resolve the samples corresponding to each pixel location in--- the source are converted to a single sample before being written to the--- destination. If the source formats are floating-point or normalized--- types, the sample values for each pixel are resolved in an--- implementation-dependent manner. If the source formats are integer--- types, a single sample’s value is selected for each pixel.------ @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets--- in texels of the sub-regions of the source and destination image data.--- @extent@ is the size in texels of the source image to resolve in--- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a--- region that is contained within its corresponding image.------ Resolves are done layer by layer starting with @baseArrayLayer@ member--- of @srcSubresource@ for the source and @dstSubresource@ for the--- destination. @layerCount@ layers are resolved to the destination image.------ == Valid Usage------ -   #VUID-vkCmdResolveImage-commandBuffer-01837# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdResolveImage-commandBuffer-01838# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdResolveImage-pRegions-00255# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a---     sample count equal to any valid sample count value other than---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a---     sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdResolveImage-dstImage-02003# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ -   #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>---     feature is enabled and the image is created with---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ -   #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@---     /must/ have been created with the same image format------ -   #VUID-vkCmdResolveImage-srcSubresource-01709# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdResolveImage-dstSubresource-01710# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdResolveImage-srcSubresource-01711# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-vkCmdResolveImage-dstSubresource-01712# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdResolveImage-srcImage-04446# If either @srcImage@ or---     @dstImage@ are of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and---     @srcSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdResolveImage-srcImage-04447# If either @srcImage@ or---     @dstImage@ are of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and---     @dstSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdResolveImage-srcOffset-00269# For each element of---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdResolveImage-srcOffset-00270# For each element of---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdResolveImage-srcOffset-00272# For each element of---     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdResolveImage-dstOffset-00274# For each element of---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdResolveImage-dstOffset-00275# For each element of---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdResolveImage-dstOffset-00277# For each element of---     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageResolve'---     structures------ -   #VUID-vkCmdResolveImage-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-vkCmdResolveImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdResolveImage-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'-cmdResolveImage :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command will be-                   -- recorded.-                   CommandBuffer-                -> -- | @srcImage@ is the source image.-                   ("srcImage" ::: Image)-                -> -- | @srcImageLayout@ is the layout of the source image subresources for the-                   -- resolve.-                   ("srcImageLayout" ::: ImageLayout)-                -> -- | @dstImage@ is the destination image.-                   ("dstImage" ::: Image)-                -> -- | @dstImageLayout@ is the layout of the destination image subresources for-                   -- the resolve.-                   ("dstImageLayout" ::: ImageLayout)-                -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures-                   -- specifying the regions to resolve.-                   ("regions" ::: Vector ImageResolve)-                -> io ()-cmdResolveImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do-  let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing-  let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr-  pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)-  lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetEvent-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()---- | vkCmdSetEvent - Set an event object to signaled state------ = Description------ 'cmdSetEvent' behaves identically to--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', except that--- it does not define an access scope, and /must/ only be used with--- 'cmdWaitEvents', not--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR'.------ == Valid Usage------ -   #VUID-vkCmdSetEvent-stageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdSetEvent-stageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdSetEvent-stageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdSetEvent-stageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdSetEvent-stageMask-04097# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdSetEvent-stageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @stageMask@ /must/ not be @0@------ -   #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in---     @stageMask@ /must/ be supported by the capabilities of the queue---     family specified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was---     used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ -   #VUID-vkCmdSetEvent-commandBuffer-01152# @commandBuffer@’s current---     device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid---     'Vulkan.Core10.Handles.Event' handle------ -   #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/---     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdSetEvent-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and---     @event@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdSetEvent :: forall io-             . (MonadIO io)-            => -- | @commandBuffer@ is the command buffer into which the command is-               -- recorded.-               CommandBuffer-            -> -- | @event@ is the event that will be signaled.-               Event-            -> -- | @stageMask@ specifies the-               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>-               -- used to determine the first-               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.-               ("stageMask" ::: PipelineStageFlags)-            -> io ()-cmdSetEvent commandBuffer event stageMask = liftIO $ do-  let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetEventPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing-  let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr-  traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResetEvent-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()---- | vkCmdResetEvent - Reset an event object to non-signaled state------ = Description------ 'cmdResetEvent' behaves identically to--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR'.------ == Valid Usage------ -   #VUID-vkCmdResetEvent-stageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdResetEvent-stageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdResetEvent-stageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdResetEvent-stageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdResetEvent-stageMask-04097# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdResetEvent-stageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @stageMask@ /must/ not be @0@------ -   #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included---     in @stageMask@ /must/ be supported by the capabilities of the queue---     family specified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was---     used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not---     include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ -   #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution---     dependency between 'cmdResetEvent' and the execution of any---     'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter------ -   #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution---     dependency between 'cmdResetEvent' and the execution of any---     'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR' that---     includes @event@ in its @pEvents@ parameter------ -   #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current---     device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid---     'Vulkan.Core10.Handles.Event' handle------ -   #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdResetEvent-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and---     @event@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdResetEvent :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command is-                 -- recorded.-                 CommandBuffer-              -> -- | @event@ is the event that will be unsignaled.-                 Event-              -> -- | @stageMask@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                 -- specifying the-                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>-                 -- used to determine when the @event@ is unsignaled.-                 ("stageMask" ::: PipelineStageFlags)-              -> io ()-cmdResetEvent commandBuffer event stageMask = liftIO $ do-  let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdResetEventPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing-  let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr-  traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWaitEventsUnsafe-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()--foreign import ccall-  "dynamic" mkVkCmdWaitEventsSafe-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()---- | cmdWaitEvents with selectable safeness-cmdWaitEventsSafeOrUnsafe :: forall io-                           . (MonadIO io)-                          => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())-                          -> -- | @commandBuffer@ is the command buffer into which the command is-                             -- recorded.-                             CommandBuffer-                          -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.-                             ("events" ::: Vector Event)-                          -> -- | @srcStageMask@ is a bitmask of-                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                             -- specifying the-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.-                             ("srcStageMask" ::: PipelineStageFlags)-                          -> -- | @dstStageMask@ is a bitmask of-                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                             -- specifying the-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.-                             ("dstStageMask" ::: PipelineStageFlags)-                          -> -- | @pMemoryBarriers@ is a pointer to an array of-                             -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                             ("memoryBarriers" ::: Vector MemoryBarrier)-                          -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                             -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                             ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)-                          -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                             -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                             ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-                          -> io ()-cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer events srcStageMask dstStageMask memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do-  let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing-  let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr-  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)-  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)-  pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)-  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)-  lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (events)) :: Word32)) (pPEvents) (srcStageMask) (dstStageMask) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))-  pure $ ()---- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory------ = Description------ 'cmdWaitEvents' is largely similar to--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', but /can/--- only wait on signal operations defined by 'cmdSetEvent'. As--- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines--- the first access scope for each event signal operation in addition to--- its own access scopes.------ Note------ Since 'cmdSetEvent' does not have any dependency information beyond a--- stage mask, implementations do not have the same opportunity to perform--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- in advance as they do with--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR' and--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR'.------ When 'cmdWaitEvents' is submitted to a queue, it defines a memory--- dependency between prior event signal operations on the same queue or--- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to--- wait on event signal operations occurring on other queues.------ The first synchronization scope only includes event signal operations--- that operate on members of @pEvents@, and the operations that--- happened-before the event signal operations. Event signal operations--- performed by 'cmdSetEvent' that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>--- are included in the first synchronization scope, if the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in their @stageMask@ parameter is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in @srcStageMask@. Event signal operations performed by--- 'Vulkan.Core10.Event.setEvent' are only included in the first--- synchronization scope if--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is--- included in @srcStageMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The second synchronization scope is limited to operations on the--- pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@. Within that, the first access scope only--- includes the first access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the first access scope--- includes no accesses.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@. Within that, the second access scope only--- includes the second access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the second access scope--- includes no accesses.------ == Valid Usage------ -   #VUID-vkCmdWaitEvents-srcStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04097# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdWaitEvents-srcStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @srcStageMask@ /must/ not be @0@------ -   #VUID-vkCmdWaitEvents-dstStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04097# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdWaitEvents-dstStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @dstStageMask@ /must/ not be @0@------ -   #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element---     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element---     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of---     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of---     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage---     included in @srcStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage---     included in @dstStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be---     the bitwise OR of the @stageMask@ parameter used in previous calls---     to 'cmdSetEvent' with any of the elements of @pEvents@ and---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'---     if any of the elements of @pEvents@ was set using---     'Vulkan.Core10.Event.setEvent'------ -   #VUID-vkCmdWaitEvents-pEvents-01163# If @pEvents@ includes one or---     more events that will be signaled by 'Vulkan.Core10.Event.setEvent'---     after @commandBuffer@ has been submitted to a queue, then---     'cmdWaitEvents' /must/ not be called inside a render pass instance------ -   #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any---     element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/---     be equal------ -   #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current---     device mask /must/ include exactly one physical device------ -   #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/---     not have been signaled by---     'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid---     pointer to an array of @eventCount@ valid---     'Vulkan.Core10.Handles.Event' handles------ -   #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid---     pointer to an array of @memoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures------ -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@---     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures------ -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures------ -   #VUID-vkCmdWaitEvents-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-vkCmdWaitEvents-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be---     greater than @0@------ -   #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the---     elements of @pEvents@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdWaitEvents :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command is-                 -- recorded.-                 CommandBuffer-              -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.-                 ("events" ::: Vector Event)-              -> -- | @srcStageMask@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                 -- specifying the-                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.-                 ("srcStageMask" ::: PipelineStageFlags)-              -> -- | @dstStageMask@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                 -- specifying the-                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.-                 ("dstStageMask" ::: PipelineStageFlags)-              -> -- | @pMemoryBarriers@ is a pointer to an array of-                 -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                 ("memoryBarriers" ::: Vector MemoryBarrier)-              -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                 ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)-              -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                 ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-              -> io ()-cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe---- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call-cmdWaitEventsSafe :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command is-                     -- recorded.-                     CommandBuffer-                  -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.-                     ("events" ::: Vector Event)-                  -> -- | @srcStageMask@ is a bitmask of-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                     -- specifying the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.-                     ("srcStageMask" ::: PipelineStageFlags)-                  -> -- | @dstStageMask@ is a bitmask of-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                     -- specifying the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.-                     ("dstStageMask" ::: PipelineStageFlags)-                  -> -- | @pMemoryBarriers@ is a pointer to an array of-                     -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                     ("memoryBarriers" ::: Vector MemoryBarrier)-                  -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                     -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                     ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)-                  -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                     -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                     ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-                  -> io ()-cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdPipelineBarrier-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()---- | vkCmdPipelineBarrier - Insert a memory dependency------ = Description------ 'cmdPipelineBarrier' operates almost identically to--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',--- except that the scopes and barriers are defined as direct parameters--- rather than being defined by an--- 'Vulkan.Extensions.VK_KHR_synchronization2.DependencyInfoKHR'.------ When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory--- dependency between commands that were submitted before it, and those--- submitted after it.------ If 'cmdPipelineBarrier' was recorded outside a render pass instance, the--- first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the--- first synchronization scope includes only commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>--- within the same subpass. In either case, the first synchronization scope--- is limited to operations on the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@.------ If 'cmdPipelineBarrier' was recorded outside a render pass instance, the--- second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the--- second synchronization scope includes only commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>--- within the same subpass. In either case, the second synchronization--- scope is limited to operations on the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@. Within that, the first access scope only--- includes the first access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the first access scope--- includes no accesses.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@. Within that, the second access scope only--- includes the second access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the second access scope--- includes no accesses.------ If @dependencyFlags@ includes--- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then--- any dependency between--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>--- pipeline stages is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>--- - otherwise it is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.------ == Valid Usage------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04097# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @srcStageMask@ /must/ not be @0@------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04097# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @dstStageMask@ /must/ not be @0@------ -   #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any---     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any---     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any---     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any---     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pDependencies-02285# If---     'cmdPipelineBarrier' is called within a render pass instance, the---     render pass /must/ have been created with at least one---     'Vulkan.Core10.Pass.SubpassDependency' instance in---     'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that---     expresses a dependency from the current subpass to itself, with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>---     that are all supersets of the scopes defined in this command------ -   #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If---     'cmdPipelineBarrier' is called within a render pass instance, it---     /must/ not include any buffer memory barriers------ -   #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is---     called within a render pass instance, the @image@ member of any---     image memory barrier included in this command /must/ be an---     attachment used in the current subpass both as an input attachment,---     and as either a color or depth\/stencil attachment------ -   #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'---     is called within a render pass instance, the @oldLayout@ and---     @newLayout@ members of any image memory barrier included in this---     command /must/ be equal------ -   #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If---     'cmdPipelineBarrier' is called within a render pass instance, the---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image---     memory barrier included in this command /must/ be equal------ -   #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If---     'cmdPipelineBarrier' is called outside of a render pass instance,---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'---     /must/ not be included in the dependency flags------ -   #VUID-vkCmdPipelineBarrier-None-06191# If 'cmdPipelineBarrier' is---     called within a render pass instance, the render pass /must/ not---     have been started with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage---     included in @srcStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage---     included in @dstStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ == Valid Usage (Implicit)------ -   #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#---     @dependencyFlags@ /must/ be a valid combination of---     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values------ -   #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid---     pointer to an array of @memoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures------ -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@---     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures------ -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures------ -   #VUID-vkCmdPipelineBarrier-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-vkCmdPipelineBarrier-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdPipelineBarrier :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command is-                      -- recorded.-                      CommandBuffer-                   -> -- | @srcStageMask@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                      -- specifying the-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.-                      ("srcStageMask" ::: PipelineStageFlags)-                   -> -- | @dstStageMask@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                      -- specifying the-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.-                      ("dstStageMask" ::: PipelineStageFlags)-                   -> -- | @dependencyFlags@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying-                      -- how execution and memory dependencies are formed.-                      DependencyFlags-                   -> -- | @pMemoryBarriers@ is a pointer to an array of-                      -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                      ("memoryBarriers" ::: Vector MemoryBarrier)-                   -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                      -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                      ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)-                   -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                      -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                      ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-                   -> io ()-cmdPipelineBarrier commandBuffer srcStageMask dstStageMask dependencyFlags memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do-  let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing-  let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr-  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)-  pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)-  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)-  lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier' (commandBufferHandle (commandBuffer)) (srcStageMask) (dstStageMask) (dependencyFlags) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBeginQuery-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()---- | vkCmdBeginQuery - Begin a query------ = Description------ If the @queryType@ of the pool is--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@--- contains--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an--- implementation /must/ return a result that matches the actual number of--- samples passed. This is described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.------ Calling 'cmdBeginQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'--- with the @index@ parameter set to zero.------ After beginning a query, that query is considered /active/ within the--- command buffer it was called in until that same query is ended. Queries--- active in a primary command buffer when secondary command buffers are--- executed are considered active for those secondary command buffers.------ == Valid Usage------ -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command---     /must/ be unavailable------ -   #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'---     or---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'------ -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'------ -   #VUID-vkCmdBeginQuery-queryType-00800# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries>---     feature is not enabled, or the @queryType@ used to create---     @queryPool@ was not---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/---     not contain---     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'------ -   #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the---     number of queries in @queryPool@------ -   #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and---     any of the @pipelineStatistics@ indicate graphics operations, the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and---     any of the @pipelineStatistics@ indicate compute operations, the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/---     not be a protected command buffer------ -   #VUID-vkCmdBeginQuery-query-00808# If called within a render pass---     instance, the sum of @query@ and the number of bits set in the---     current subpass’s view mask /must/ be less than or equal to the---     number of queries in @queryPool@------ -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been---     created with a @queryType@ that differs from that of any queries---     that are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>---     within @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'---     then---     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@---     /must/ be supported------ -   #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>---     /must/ have been held before---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on---     @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',---     the query begin /must/ be the first recorded command in---     @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',---     the begin command /must/ not be recorded within a render pass---     instance------ -   #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     another query pool with a @queryType@---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has---     been used within @commandBuffer@, its parent primary command buffer---     or secondary command buffer recorded within the same parent primary---     command buffer as @commandBuffer@, the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>---     feature /must/ be enabled------ -   #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a---     @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     this command /must/ not be recorded in a command buffer that, either---     directly or through secondary command buffers, also contains a---     'cmdResetQueryPool' command affecting the same query------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a---     valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid---     combination of---     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'---     values------ -   #VUID-vkCmdBeginQuery-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-vkCmdBeginQuery-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |--- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',--- 'Vulkan.Core10.Handles.QueryPool'-cmdBeginQuery :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which this command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @queryPool@ is the query pool that will manage the results of the query.-                 QueryPool-              -> -- | @query@ is the query index within the query pool that will contain the-                 -- results.-                 ("query" ::: Word32)-              -> -- | @flags@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'-                 -- specifying constraints on the types of queries that /can/ be performed.-                 QueryControlFlags-              -> io ()-cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do-  let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdBeginQueryPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing-  let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr-  traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags))-  pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginQuery' and 'cmdEndQuery'------ Note that 'cmdEndQuery' is *not* called if an exception is thrown by the--- inner action.-cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r-cmdUseQuery commandBuffer queryPool query flags a =-  (cmdBeginQuery commandBuffer queryPool query flags) *> a <* (cmdEndQuery commandBuffer queryPool query)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdEndQuery-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()---- | vkCmdEndQuery - Ends a query------ = Description------ Calling 'cmdEndQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with--- the @index@ parameter set to zero.------ As queries operate asynchronously, ending a query does not immediately--- set the query’s status to available. A query is considered /finished/--- when the final results of the query are ready to be retrieved by--- 'Vulkan.Core10.Query.getQueryPoolResults' and 'cmdCopyQueryPoolResults',--- and this is when the query’s status is set to available.------ Once a query is ended the query /must/ finish in finite time, unless the--- state of the query is changed using other commands, e.g. by issuing a--- reset of the query.------ == Valid Usage------ -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command---     /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>------ -   #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the---     number of queries in @queryPool@------ -   #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not---     be a protected command buffer------ -   #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a---     render pass instance, the sum of @query@ and the number of bits set---     in the current subpass’s view mask /must/ be less than or equal to---     the number of queries in @queryPool@------ -   #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with---     a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one or more of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',---     the 'cmdEndQuery' /must/ be the last recorded command in---     @commandBuffer@------ -   #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with---     a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one or more of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',---     the 'cmdEndQuery' /must/ not be recorded within a render pass---     instance------ == Valid Usage (Implicit)------ -   #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a---     valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdEndQuery-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-vkCmdEndQuery-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |--- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'-cmdEndQuery :: forall io-             . (MonadIO io)-            => -- | @commandBuffer@ is the command buffer into which this command will be-               -- recorded.-               CommandBuffer-            -> -- | @queryPool@ is the query pool that is managing the results of the query.-               QueryPool-            -> -- | @query@ is the query index within the query pool where the result is-               -- stored.-               ("query" ::: Word32)-            -> io ()-cmdEndQuery commandBuffer queryPool query = liftIO $ do-  let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdEndQueryPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing-  let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr-  traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResetQueryPool-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()---- | vkCmdResetQueryPool - Reset queries in a query pool------ = Description------ When executed on a queue, this command sets the status of query indices--- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.------ If the @queryType@ used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this--- command sets the status of query indices [@firstQuery@, @firstQuery@ +--- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as--- indicated by a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.------ Note------ Because 'cmdResetQueryPool' resets all the passes of the indicated--- queries, applications must not record a 'cmdResetQueryPool' command for--- a @queryPool@ created with--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a--- command buffer that needs to be submitted multiple times as indicated by--- a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.--- Otherwise applications will never be able to complete the recorded--- queries.------ == Valid Usage------ -   #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be---     less than the number of queries in @queryPool@------ -   #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@---     and @queryCount@ /must/ be less than or equal to the number of---     queries in @queryPool@------ -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the---     command /must/ not be active------ -   #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was---     created with---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     this command /must/ not be recorded in a command buffer that, either---     directly or through secondary command buffers, also contains begin---     commands for a query from the set of queries [@firstQuery@,---     @firstQuery@ + @queryCount@ - 1]------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be---     a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdResetQueryPool-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-vkCmdResetQueryPool-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |--- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'-cmdResetQueryPool :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which this command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @queryPool@ is the handle of the query pool managing the queries being-                     -- reset.-                     QueryPool-                  -> -- | @firstQuery@ is the initial query index to reset.-                     ("firstQuery" ::: Word32)-                  -> -- | @queryCount@ is the number of queries to reset.-                     ("queryCount" ::: Word32)-                  -> io ()-cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do-  let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing-  let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr-  traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWriteTimestamp-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()---- | vkCmdWriteTimestamp - Write a device timestamp into a query object------ = Description------ 'cmdWriteTimestamp' latches the value of the timer when all previous--- commands have completed executing as far as the specified pipeline--- stage, and writes the timestamp value to memory. When the timestamp--- value is written, the availability status of the query is set to--- available.------ Note------ If an implementation is unable to detect completion and latch the timer--- at any specific stage of the pipeline, it /may/ instead do so at any--- logically later stage.------ Comparisons between timestamps are not meaningful if the timestamps are--- written by commands submitted to different queues.------ Note------ An example of such a comparison is subtracting an older timestamp from a--- newer one to determine the execution time of a sequence of commands.------ If 'cmdWriteTimestamp' is called while executing a render pass instance--- that has multiview enabled, the timestamp uses N consecutive query--- indices in the query pool (starting at @query@) where N is the number of--- bits set in the view mask of the subpass the command is executed in. The--- resulting query values are determined by an implementation-dependent--- choice of one of the following behaviors:------ -   The first query is a timestamp value and (if more than one bit is---     set in the view mask) zero is written to the remaining queries. If---     two timestamps are written in the same subpass, the sum of the---     execution time of all views between those commands is the difference---     between the first query written by each command.------ -   All N queries are timestamp values. If two timestamps are written in---     the same subpass, the sum of the execution time of all views between---     those commands is the sum of the difference between corresponding---     queries written by each command. The difference between---     corresponding queries /may/ be the execution time of a single view.------ In either case, the application /can/ sum the differences between all N--- queries to determine the total execution time.------ == Valid Usage------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@---     /must/ be a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>---     for the queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04081# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'------ -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have---     been created with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ -   #VUID-vkCmdWriteTimestamp-queryPool-00828# The query identified by---     @queryPool@ and @query@ /must/ be /unavailable/------ -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command---     pool’s queue family /must/ support a non-zero @timestampValidBits@------ -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than---     the number of queries in @queryPool@------ -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the---     command /must/ be unavailable------ -   #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is---     called within a render pass instance, the sum of @query@ and the---     number of bits set in the current subpass’s view mask /must/ be less---     than or equal to the number of queries in @queryPool@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@---     /must/ be a valid---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     value------ -   #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be---     a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdWriteTimestamp-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-vkCmdWriteTimestamp-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, compute, decode,---     or encode operations------ -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |--- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',--- 'Vulkan.Core10.Handles.QueryPool'-cmdWriteTimestamp :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @pipelineStage@ is a-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,-                     -- specifying a stage of the pipeline.-                     PipelineStageFlagBits-                  -> -- | @queryPool@ is the query pool that will manage the timestamp.-                     QueryPool-                  -> -- | @query@ is the query within the query pool that will contain the-                     -- timestamp.-                     ("query" ::: Word32)-                  -> io ()-cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do-  let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdWriteTimestampPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing-  let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr-  traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp' (commandBufferHandle (commandBuffer)) (pipelineStage) (queryPool) (query))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyQueryPoolResults-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()---- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool--- to a buffer object------ = Description------ 'cmdCopyQueryPoolResults' is guaranteed to see the effect of previous--- uses of 'cmdResetQueryPool' in the same queue, without any additional--- synchronization. Thus, the results will always reflect the most recent--- use of the query.------ @flags@ has the same possible values described above for the @flags@--- parameter of 'Vulkan.Core10.Query.getQueryPoolResults', but the--- different style of execution causes some subtle behavioral differences.--- Because 'cmdCopyQueryPoolResults' executes in order with respect to--- other query commands, there is less ambiguity about which use of a query--- is being requested.------ Results for all requested occlusion queries, pipeline statistics--- queries, transform feedback queries, and timestamp queries are written--- as 64-bit unsigned integer values if--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set or--- 32-bit unsigned integer values otherwise. Performance queries store--- results in a tightly packed array whose type is determined by the @unit@--- member of the corresponding--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'.------ If neither of--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' and--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- are set, results are only written out for queries in the available--- state.------ If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is--- set, the implementation will wait for each query’s status to be in the--- available state before retrieving the numerical results for that query.--- This is guaranteed to reflect the most recent use of the query on the--- same queue, assuming that the query is not being simultaneously used by--- other queues. If the query does not become available in a finite amount--- of time (e.g. due to not issuing a query since the last reset), a--- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' error /may/ occur.------ Similarly, if--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is set and--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is not--- set, the availability is guaranteed to reflect the most recent use of--- the query on the same queue, assuming that the query is not being--- simultaneously used by other queues. As with--- 'Vulkan.Core10.Query.getQueryPoolResults', implementations /must/--- guarantee that if they return a non-zero availability value, then the--- numerical results are valid.------ If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is--- set, 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is--- not set, and the query’s status is unavailable, an intermediate result--- value between zero and the final result value is written for that query.------ 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'--- /must/ not be used if the pool’s @queryType@ is--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'.------ 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and--- its writes to buffer memory /must/ be synchronized using--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'--- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'--- before using the results.------ == Valid Usage------ -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/---     be less than the size of @dstBuffer@------ -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@---     /must/ be less than the number of queries in @queryPool@------ -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of---     @firstQuery@ and @queryCount@ /must/ be less than or equal to the---     number of queries in @queryPool@------ -   #VUID-vkCmdCopyQueryPoolResults-flags-00822# If---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not---     set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of---     @4@------ -   #VUID-vkCmdCopyQueryPoolResults-flags-00823# If---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set---     in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/---     have enough storage, from @dstOffset@, to contain the result of each---     query, as described---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-memorylayout here>------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/---     have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/---     not contain---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     @flags@ /must/ not contain---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'---     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     the @queryPool@ /must/ have been submitted once for each pass as---     retrieved via a call to---     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-02734#---     'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@---     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values------ -   #VUID-vkCmdCopyQueryPoolResults-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-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only---     be called outside of a render pass instance------ -   #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of---     @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Handles.QueryPool',--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'-cmdCopyQueryPoolResults :: forall io-                         . (MonadIO io)-                        => -- | @commandBuffer@ is the command buffer into which this command will be-                           -- recorded.-                           CommandBuffer-                        -> -- | @queryPool@ is the query pool managing the queries containing the-                           -- desired results.-                           QueryPool-                        -> -- | @firstQuery@ is the initial query index.-                           ("firstQuery" ::: Word32)-                        -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@-                           -- together define a range of queries.-                           ("queryCount" ::: Word32)-                        -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive-                           -- the results of the copy command.-                           ("dstBuffer" ::: Buffer)-                        -> -- | @dstOffset@ is an offset into @dstBuffer@.-                           ("dstOffset" ::: DeviceSize)-                        -> -- | @stride@ is the stride in bytes between results for individual queries-                           -- within @dstBuffer@. The required size of the backing memory for-                           -- @dstBuffer@ is determined as described above for-                           -- 'Vulkan.Core10.Query.getQueryPoolResults'.-                           ("stride" ::: DeviceSize)-                        -> -- | @flags@ is a bitmask of-                           -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying-                           -- how and when results are returned.-                           QueryResultFlags-                        -> io ()-cmdCopyQueryPoolResults commandBuffer queryPool firstQuery queryCount dstBuffer dstOffset stride flags = liftIO $ do-  let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing-  let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr-  traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount) (dstBuffer) (dstOffset) (stride) (flags))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdPushConstants-  :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()---- | vkCmdPushConstants - Update the values of push constants------ = Description------ When a command buffer begins recording, all push constant values are--- undefined. Reads of undefined push constant values by the executing--- shader return undefined values.------ Push constant values /can/ be updated incrementally, causing shader--- stages in @stageFlags@ to read the new data from @pValues@ for push--- constants modified by this command, while still reading the previous--- data for push constants not modified by this command. When a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline command>--- is issued, the bound pipeline’s layout /must/ be compatible with the--- layouts used to set the values of all push constants in the pipeline--- layout’s push constant ranges, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.--- Binding a pipeline with a layout that is not compatible with the push--- constant layout does not disturb the push constant values.------ Note------ As @stageFlags@ needs to include all flags the relevant push constant--- ranges were created with, any flags that are not supported by the queue--- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate--- @commandBuffer@ was created on are ignored.------ == Valid Usage------ -   #VUID-vkCmdPushConstants-offset-01795# For each byte in the range---     specified by @offset@ and @size@ and for each shader stage in---     @stageFlags@, there /must/ be a push constant range in @layout@ that---     includes that byte and that stage------ -   #VUID-vkCmdPushConstants-offset-01796# For each byte in the range---     specified by @offset@ and @size@ and for each push constant range---     that overlaps that byte, @stageFlags@ /must/ include all stages in---     that push constant range’s---     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@------ -   #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple---     of @4@------ -   #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of---     @4@------ -   #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@------ -   #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or---     equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@---     minus @offset@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a---     valid 'Vulkan.Core10.Handles.PipelineLayout' handle------ -   #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values------ -   #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@---     /must/ not be @0@------ -   #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a---     valid pointer to an array of @size@ bytes------ -   #VUID-vkCmdPushConstants-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-vkCmdPushConstants-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater---     than @0@------ -   #VUID-vkCmdPushConstants-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#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.PipelineLayout',--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'-cmdPushConstants :: forall io-                  . (MonadIO io)-                 => -- | @commandBuffer@ is the command buffer in which the push constant update-                    -- will be recorded.-                    CommandBuffer-                 -> -- | @layout@ is the pipeline layout used to program the push constant-                    -- updates.-                    PipelineLayout-                 -> -- | @stageFlags@ is a bitmask of-                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying-                    -- the shader stages that will use the push constants in the updated range.-                    ShaderStageFlags-                 -> -- | @offset@ is the start offset of the push constant range to update, in-                    -- units of bytes.-                    ("offset" ::: Word32)-                 -> -- | @size@ is the size of the push constant range to update, in units of-                    -- bytes.-                    ("size" ::: Word32)-                 -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new-                    -- push constant values.-                    ("values" ::: Ptr ())-                 -> io ()-cmdPushConstants commandBuffer layout stageFlags offset size values = liftIO $ do-  let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdPushConstantsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing-  let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr-  traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants' (commandBufferHandle (commandBuffer)) (layout) (stageFlags) (offset) (size) (values))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBeginRenderPass-  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()---- | vkCmdBeginRenderPass - Begin a new render pass------ = Description------ After beginning a render pass instance, the command buffer is ready to--- record the commands for the first subpass of that render pass.------ == Valid Usage------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the---     @stencilInitialLayout@ or @stencilFinalLayout@ member of the---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'---     structures or the @stencilLayout@ member of the---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the---     @initialLayout@ member of any of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when---     creating the render pass specified in the @renderPass@ member of---     @pRenderPassBegin@ is not---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each---     such @initialLayout@ /must/ be equal to the current layout of the---     corresponding attachment image subresource of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@------ -   #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@---     members of any element of the @pDependencies@ member of---     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create---     @renderPass@ /must/ be supported by the capabilities of the queue---     family identified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the---     command pool which @commandBuffer@ was allocated from------ -   #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@---     members of any element of the @pDependencies@ member of---     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create---     @renderPass@ /must/ be supported by the capabilities of the queue---     family identified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the---     command pool which @commandBuffer@ was allocated from------ -   #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in---     @framebuffer@ that is used by @renderPass@ and is bound to memory---     locations that are also bound to another attachment used by---     @renderPass@, and if at least one of those uses causes either---     attachment to be written to, both attachments /must/ have had the---     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'---     set------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#---     @pRenderPassBegin@ /must/ be a valid pointer to a valid---     'RenderPassBeginInfo' structure------ -   #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be---     a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value------ -   #VUID-vkCmdBeginRenderPass-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-vkCmdBeginRenderPass-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-cmdBeginRenderPass :: forall a io-                    . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)-                   => -- | @commandBuffer@ is the command buffer in which to record the command.-                      CommandBuffer-                   -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure-                      -- specifying the render pass to begin an instance of, and the framebuffer-                      -- the instance uses.-                      (RenderPassBeginInfo a)-                   -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-                      -- value specifying how the commands in the first subpass will be provided.-                      SubpassContents-                   -> io ()-cmdBeginRenderPass commandBuffer renderPassBegin contents = liftIO . evalContT $ do-  let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing-  let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr-  pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)-  lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) (contents))-  pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginRenderPass' and 'cmdEndRenderPass'------ Note that 'cmdEndRenderPass' is *not* called if an exception is thrown--- by the inner action.-cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r-cmdUseRenderPass commandBuffer pRenderPassBegin contents a =-  (cmdBeginRenderPass commandBuffer pRenderPassBegin contents) *> a <* (cmdEndRenderPass commandBuffer)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdNextSubpass-  :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()---- | vkCmdNextSubpass - Transition to the next subpass of a render pass------ = Description------ The subpass index for a render pass begins at zero when--- 'cmdBeginRenderPass' is recorded, and increments each time--- 'cmdNextSubpass' is recorded.------ Moving to the next subpass automatically performs any multisample--- resolve operations in the subpass being ended. End-of-subpass--- multisample resolves are treated as color attachment writes for the--- purposes of synchronization. This applies to resolve operations for both--- color and depth\/stencil attachments. That is, they are considered to--- execute in the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'--- pipeline stage and their writes are synchronized with--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.--- Synchronization between rendering within a subpass and any resolve--- operations at the end of the subpass occurs automatically, without need--- for explicit dependencies or pipeline barriers. However, if the resolve--- attachment is also used in a different subpass, an explicit dependency--- is needed.------ After transitioning to the next subpass, the application /can/ record--- the commands for that subpass.------ == Valid Usage------ -   #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/---     be less than the number of subpasses in the render pass minus one------ -   #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be---     recorded when transform feedback is active------ == Valid Usage (Implicit)------ -   #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a---     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value------ -   #VUID-vkCmdNextSubpass-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-vkCmdNextSubpass-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-cmdNextSubpass :: forall io-                . (MonadIO io)-               => -- | @commandBuffer@ is the command buffer in which to record the command.-                  CommandBuffer-               -> -- | @contents@ specifies how the commands in the next subpass will be-                  -- provided, in the same fashion as the corresponding parameter of-                  -- 'cmdBeginRenderPass'.-                  SubpassContents-               -> io ()-cmdNextSubpass commandBuffer contents = liftIO $ do-  let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdNextSubpassPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing-  let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr-  traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass' (commandBufferHandle (commandBuffer)) (contents))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdEndRenderPass-  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()---- | vkCmdEndRenderPass - End the current render pass------ = Description------ Ending a render pass instance performs any multisample resolve--- operations on the final subpass.------ == Valid Usage------ -   #VUID-vkCmdEndRenderPass-None-00910# The current subpass index---     /must/ be equal to the number of subpasses in the render pass minus---     one------ -   #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be---     recorded when transform feedback is active------ -   #VUID-vkCmdEndRenderPass-None-06170# The current render pass---     instance /must/ not have been begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdEndRenderPass-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-vkCmdEndRenderPass-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdEndRenderPass :: forall io-                  . (MonadIO io)-                 => -- | @commandBuffer@ is the command buffer in which to end the current render-                    -- pass instance.-                    CommandBuffer-                 -> io ()-cmdEndRenderPass commandBuffer = liftIO $ do-  let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdEndRenderPassPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing-  let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr-  traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass' (commandBufferHandle (commandBuffer)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdExecuteCommands-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()---- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary--- command buffer------ = Description------ If any element of @pCommandBuffers@ was not recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'--- flag, and it was recorded into any other primary command buffer which is--- currently in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,--- that primary command buffer becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.------ == Valid Usage------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of---     @pCommandBuffers@ /must/ have been allocated with a @level@ of---     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of---     @pCommandBuffers@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of---     @pCommandBuffers@ was not recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'---     flag, it /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of---     @pCommandBuffers@ was not recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'---     flag, it /must/ not have already been recorded to @commandBuffer@------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of---     @pCommandBuffers@ was not recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'---     flag, it /must/ not appear more than once in @pCommandBuffers@------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of---     @pCommandBuffers@ /must/ have been allocated from a---     'Vulkan.Core10.Handles.CommandPool' that was created for the same---     queue family as the 'Vulkan.Core10.Handles.CommandPool' from which---     @commandBuffer@ was allocated------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If---     'cmdExecuteCommands' is being called within a render pass instance,---     each element of @pCommandBuffers@ /must/ have been recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If---     'cmdExecuteCommands' is being called within a render pass instance,---     and any element of @pCommandBuffers@ was recorded with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@---     not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that---     'Vulkan.Core10.Handles.Framebuffer' /must/ match the---     'Vulkan.Core10.Handles.Framebuffer' used in the current render pass---     instance------ -   #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'cmdBeginRenderPass', its @contents@ parameter /must/ have been set---     to---     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@---     /must/ have been recorded with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@---     set to the index of the subpass which the given command buffer will---     be executed in------ -   #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'cmdBeginRenderPass', the render passes specified in the---     @pBeginInfo->pInheritanceInfo->renderPass@ members of the---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to---     begin recording each element of @pCommandBuffers@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the current render pass------ -   #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is---     being called within a render pass instance that included---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of---     @pCommandBuffers@ /must/ have been recorded with---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'---     in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'------ -   #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is---     being called within a render pass instance that included---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of---     @pCommandBuffers@ /must/ have been recorded with---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@---     identical to---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@------ -   #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is---     being called within a render pass instance that included---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of---     @pCommandBuffers@ /must/ have been recorded with---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@---     identical to 'RenderPassBeginInfo'::@renderArea@------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If---     'cmdExecuteCommands' is not being called within a render pass---     instance, each element of @pCommandBuffers@ /must/ not have been---     recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>---     feature is not enabled, @commandBuffer@ /must/ not have any queries---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>,---     then each element of @pCommandBuffers@ /must/ have been recorded---     with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>,---     then each element of @pCommandBuffers@ /must/ have been recorded---     with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@---     having all bits set that are set for the query------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'---     query---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>,---     then each element of @pCommandBuffers@ /must/ have been recorded---     with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@---     having all bits set that are set in the---     'Vulkan.Core10.Handles.QueryPool' the query uses------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of---     @pCommandBuffers@ /must/ not begin any query types that are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>---     in @commandBuffer@------ -   #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each element of @pCommandBuffers@ /must/ be a---     protected command buffer------ -   #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each element of @pCommandBuffers@ /must/ be an---     unprotected command buffer------ -   #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be---     recorded when transform feedback is active------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If---     @pCommandBuffers@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     there /must/ be no action or synchronization commands between that---     render pass instance and any render pass instance that resumes it------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If---     @pCommandBuffers@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     there /must/ be no render pass instances between that render pass---     instance and any render pass instance that resumes it------ -   #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>---     limit is not supported, and any element of @pCommandBuffers@---     contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     where a graphics pipeline has been bound, any pipelines bound in the---     render pass instance that resumes it, or any subsequent render pass---     instances that resume from that one and so on, /must/ use the same---     sample locations------ -   #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     its---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@flags@---     parameter /must/ have included---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR'------ -   #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the render passes specified in the---     @pBeginInfo->pInheritanceInfo->renderPass@ members of the---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to---     begin recording each element of @pCommandBuffers@ /must/ be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @flags@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@flags@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     excluding---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR'------ -   #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @colorAttachmentCount@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ -   #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     if the @imageView@ member of an element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding---     element of the @pColorAttachmentFormats@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the format used to create that image view------ -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     if the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthAttachmentFormat@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the format used to create that image view------ -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     if the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @stencilAttachmentFormat@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the format used to create that image view------ -   #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',---     the @viewMask@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ -   #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the @imageView@ member of an element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding---     element of the @pColorAttachmentSamples@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the @imageView@ member of an element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@rasterizationSamples@---     /must/ be equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@rasterizationSamples@---     /must/ be equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@rasterizationSamples@---     /must/ be equal to the sample count used to create that image view------ == Valid Usage (Implicit)------ -   #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#---     @pCommandBuffers@ /must/ be a valid pointer to an array of---     @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'---     handles------ -   #VUID-vkCmdExecuteCommands-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-vkCmdExecuteCommands-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdExecuteCommands-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ -   #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#---     @commandBufferCount@ /must/ be greater than @0@------ -   #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,---     and the elements of @pCommandBuffers@ /must/ have been created,---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdExecuteCommands :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is a handle to a primary command buffer that the-                      -- secondary command buffers are executed in.-                      CommandBuffer-                   -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@-                      -- secondary command buffer handles, which are recorded to execute in the-                      -- primary command buffer in the order they are listed in the array.-                      ("commandBuffers" ::: Vector CommandBuffer)-                   -> io ()-cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do-  let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing-  let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr-  pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)-  lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers))-  pure $ ()----- | VkClearRect - Structure specifying a clear rectangle------ = Description------ The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting--- from the base layer of the attachment image view are cleared.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'-data ClearRect = ClearRect-  { -- | @rect@ is the two-dimensional region to be cleared.-    rect :: Rect2D-  , -- | @baseArrayLayer@ is the first layer to be cleared.-    baseArrayLayer :: Word32-  , -- | @layerCount@ is the number of layers to clear.-    layerCount :: Word32-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ClearRect)-#endif-deriving instance Show ClearRect--instance ToCStruct ClearRect where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ClearRect{..} f = do-    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)-    f-  cStructSize = 24-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)-    f--instance FromCStruct ClearRect where-  peekCStruct p = do-    rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))-    baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    pure $ ClearRect-             rect baseArrayLayer layerCount--instance Storable ClearRect where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ClearRect where-  zero = ClearRect-           zero-           zero-           zero----- | VkImageSubresourceLayers - Structure specifying an image subresource--- layers------ == Valid Usage------ -   #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@---     contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it---     /must/ not contain either of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/---     not contain---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'------ -   #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/---     not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index---     /i/------ -   #VUID-VkImageSubresourceLayers-layerCount-01700# @layerCount@ /must/---     be greater than 0------ == Valid Usage (Implicit)------ -   #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values------ -   #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#---     @aspectMask@ /must/ not be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR', 'ImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR', 'ImageResolve',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR'-data ImageSubresourceLayers = ImageSubresourceLayers-  { -- | @aspectMask@ is a combination of-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting-    -- the color, depth and\/or stencil aspects to be copied.-    aspectMask :: ImageAspectFlags-  , -- | @mipLevel@ is the mipmap level to copy-    mipLevel :: Word32-  , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of-    -- layers to copy.-    baseArrayLayer :: Word32-  , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"-    layerCount :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageSubresourceLayers)-#endif-deriving instance Show ImageSubresourceLayers--instance ToCStruct ImageSubresourceLayers where-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageSubresourceLayers{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)-    poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)-    f-  cStructSize = 16-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)-    f--instance FromCStruct ImageSubresourceLayers where-  peekCStruct p = do-    aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))-    mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))-    baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))-    layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))-    pure $ ImageSubresourceLayers-             aspectMask mipLevel baseArrayLayer layerCount--instance Storable ImageSubresourceLayers where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageSubresourceLayers where-  zero = ImageSubresourceLayers-           zero-           zero-           zero-           zero----- | VkBufferCopy - Structure specifying a buffer copy operation------ == Valid Usage------ -   #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'-data BufferCopy = BufferCopy-  { -- | @srcOffset@ is the starting offset in bytes from the start of-    -- @srcBuffer@.-    srcOffset :: DeviceSize-  , -- | @dstOffset@ is the starting offset in bytes from the start of-    -- @dstBuffer@.-    dstOffset :: DeviceSize-  , -- | @size@ is the number of bytes to copy.-    size :: DeviceSize-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferCopy)-#endif-deriving instance Show BufferCopy--instance ToCStruct BufferCopy where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferCopy{..} f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)-    f--instance FromCStruct BufferCopy where-  peekCStruct p = do-    srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))-    dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))-    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))-    pure $ BufferCopy-             srcOffset dstOffset size--instance Storable BufferCopy where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferCopy where-  zero = BufferCopy-           zero-           zero-           zero----- | VkImageCopy - Structure specifying an image copy operation------ = Description------ For 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' images, copies are--- performed slice by slice starting with the @z@ member of the @srcOffset@--- or @dstOffset@, and copying @depth@ slices. For images with multiple--- layers, copies are performed layer by layer starting with the--- @baseArrayLayer@ member of the @srcSubresource@ or @dstSubresource@ and--- copying @layerCount@ layers. Image data /can/ be copied between images--- with different image types. If one image is--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other image is--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple layers, then--- each slice is copied to or from a different layer.------ Copies involving a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>--- specify the region to be copied in terms of the /plane/ to be copied,--- not the coordinates of the multi-planar image. This means that copies--- accessing the R\/B planes of “@_422@” format images /must/ fit the--- copied region within half the @width@ of the parent image, and that--- copies accessing the R\/B planes of “@_420@” format images /must/ fit--- the copied region within half the @width@ and @height@ of the parent--- image.------ == Valid Usage------ -   #VUID-VkImageCopy-extent-00140# The number of slices of the @extent@---     (for 3D) or layers of the @srcSubresource@ (for non-3D) /must/ match---     the number of slices of the @extent@ (for 3D) or layers of the---     @dstSubresource@ (for non-3D)------ == Valid Usage (Implicit)------ -   #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ -   #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'-data ImageCopy = ImageCopy-  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'-    -- structures specifying the image subresources of the images used for the-    -- source and destination image data, respectively.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets-    -- in texels of the sub-regions of the source and destination image data.-    srcOffset :: Offset3D-  , -- No documentation found for Nested "VkImageCopy" "dstSubresource"-    dstSubresource :: ImageSubresourceLayers-  , -- No documentation found for Nested "VkImageCopy" "dstOffset"-    dstOffset :: Offset3D-  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@-    -- and @depth@.-    extent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageCopy)-#endif-deriving instance Show ImageCopy--instance ToCStruct ImageCopy where-  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageCopy{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)-    f-  cStructSize = 68-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct ImageCopy where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))-    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))-    pure $ ImageCopy-             srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageCopy where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageCopy where-  zero = ImageCopy-           zero-           zero-           zero-           zero-           zero----- | VkImageBlit - Structure specifying an image blit operation------ = Description------ For each element of the @pRegions@ array, a blit operation is performed--- for the specified source and destination regions.------ == Valid Usage------ -   #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of---     @srcSubresource@ and @dstSubresource@ /must/ match------ -   #VUID-VkImageBlit-layerCount-00239# The @layerCount@ member of---     @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ -   #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ -   #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'cmdBlitImage'-data ImageBlit = ImageBlit-  { -- | @srcSubresource@ is the subresource to blit from.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffsets@ is a pointer to an array of two-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the-    -- bounds of the source region within @srcSubresource@.-    srcOffsets :: (Offset3D, Offset3D)-  , -- | @dstSubresource@ is the subresource to blit into.-    dstSubresource :: ImageSubresourceLayers-  , -- | @dstOffsets@ is a pointer to an array of two-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the-    -- bounds of the destination region within @dstSubresource@.-    dstOffsets :: (Offset3D, Offset3D)-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageBlit)-#endif-deriving instance Show ImageBlit--instance ToCStruct ImageBlit where-  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageBlit{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))-    case (srcOffsets) of-      (e0, e1) -> do-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))-    case (dstOffsets) of-      (e0, e1) -> do-        poke (pDstOffsets' :: Ptr Offset3D) (e0)-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    f-  cStructSize = 80-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))-    case ((zero, zero)) of-      (e0, e1) -> do-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))-    case ((zero, zero)) of-      (e0, e1) -> do-        poke (pDstOffsets' :: Ptr Offset3D) (e0)-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    f--instance FromCStruct ImageBlit where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))-    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))-    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))-    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))-    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))-    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))-    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))-    pure $ ImageBlit-             srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))--instance Storable ImageBlit where-  sizeOf ~_ = 80-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageBlit where-  zero = ImageBlit-           zero-           (zero, zero)-           zero-           (zero, zero)----- | VkBufferImageCopy - Structure specifying a buffer image copy operation------ = Description------ When copying to or from a depth or stencil aspect, the data in buffer--- memory uses a layout that is a (mostly) tightly packed representation of--- the depth or stencil data. Specifically:------ -   data copied to or from the stencil aspect of any depth\/stencil---     format is tightly packed with one---     'Vulkan.Core10.Enums.Format.FORMAT_S8_UINT' value per texel.------ -   data copied to or from the depth aspect of a---     'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' or---     'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM_S8_UINT' format is---     tightly packed with one---     'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' value per texel.------ -   data copied to or from the depth aspect of a---     'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' or---     'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT_S8_UINT' format is---     tightly packed with one---     'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' value per texel.------ -   data copied to or from the depth aspect of a---     'Vulkan.Core10.Enums.Format.FORMAT_X8_D24_UNORM_PACK32' or---     'Vulkan.Core10.Enums.Format.FORMAT_D24_UNORM_S8_UINT' format is---     packed with one 32-bit word per texel with the D24 value in the LSBs---     of the word, and undefined values in the eight MSBs.------ Note------ To copy both the depth and stencil aspects of a depth\/stencil format,--- two entries in @pRegions@ /can/ be used, where one specifies the depth--- aspect in @imageSubresource@, and the other specifies the stencil--- aspect.------ Because depth or stencil aspect buffer to image copies /may/ require--- format conversions on some implementations, they are not supported on--- queues that do not support graphics.------ When copying to a depth aspect, and the--- @VK_EXT_depth_range_unrestricted@ extension is not enabled, the data in--- buffer memory /must/ be in the range [0,1], or the resulting values are--- undefined.------ Copies are done layer by layer starting with image layer--- @baseArrayLayer@ member of @imageSubresource@. @layerCount@ layers are--- copied from the source image or to the destination image.------ For purpose of valid usage statements here and in related copy commands,--- a /blocked image/ is defined as:------ -   an image with a /single-plane/, “@_422@” format, which is treated as---     a format with a 2 × 1 compressed texel block, or------ -   a compressed image.------ == Valid Usage------ -   #VUID-VkBufferImageCopy-bufferRowLength-00195# @bufferRowLength@---     /must/ be @0@, or greater than or equal to the @width@ member of---     @imageExtent@------ -   #VUID-VkBufferImageCopy-bufferImageHeight-00196# @bufferImageHeight@---     /must/ be @0@, or greater than or equal to the @height@ member of---     @imageExtent@------ -   #VUID-VkBufferImageCopy-aspectMask-00212# The @aspectMask@ member of---     @imageSubresource@ /must/ only have a single bit set------ == Valid Usage (Implicit)------ -   #VUID-VkBufferImageCopy-imageSubresource-parameter#---     @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'---     structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',--- 'cmdCopyImageToBuffer'-data BufferImageCopy = BufferImageCopy-  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer-    -- object where the image data is copied from or to.-    bufferOffset :: DeviceSize-  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion-    -- of a larger two- or three-dimensional image in buffer memory, and-    -- control the addressing calculations. If either of these values is zero,-    -- that aspect of the buffer memory is considered to be tightly packed-    -- according to the @imageExtent@.-    bufferRowLength :: Word32-  , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"-    bufferImageHeight :: Word32-  , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the-    -- specific image subresources of the image used for the source or-    -- destination image data.-    imageSubresource :: ImageSubresourceLayers-  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the-    -- sub-region of the source or destination image data.-    imageOffset :: Offset3D-  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,-    -- @height@ and @depth@.-    imageExtent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferImageCopy)-#endif-deriving instance Show BufferImageCopy--instance ToCStruct BufferImageCopy where-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferImageCopy{..} f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)-    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)-    f-  cStructSize = 56-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct BufferImageCopy where-  peekCStruct p = do-    bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))-    bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))-    bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))-    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))-    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))-    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))-    pure $ BufferImageCopy-             bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent--instance Storable BufferImageCopy where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferImageCopy where-  zero = BufferImageCopy-           zero-           zero-           zero-           zero-           zero-           zero----- | VkImageResolve - Structure specifying an image resolve operation------ == Valid Usage------ -   #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of---     @srcSubresource@ and @dstSubresource@ /must/ only contain---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageResolve-layerCount-00267# The @layerCount@ member of---     @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ -   #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@---     /must/ be a valid 'ImageSubresourceLayers' structure------ -   #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@---     /must/ be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'-data ImageResolve = ImageResolve-  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'-    -- structures specifying the image subresources of the images used for the-    -- source and destination image data, respectively. Resolve of-    -- depth\/stencil images is not supported.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets-    -- in texels of the sub-regions of the source and destination image data.-    srcOffset :: Offset3D-  , -- No documentation found for Nested "VkImageResolve" "dstSubresource"-    dstSubresource :: ImageSubresourceLayers-  , -- No documentation found for Nested "VkImageResolve" "dstOffset"-    dstOffset :: Offset3D-  , -- | @extent@ is the size in texels of the source image to resolve in-    -- @width@, @height@ and @depth@.-    extent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageResolve)-#endif-deriving instance Show ImageResolve--instance ToCStruct ImageResolve where-  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageResolve{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)-    f-  cStructSize = 68-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct ImageResolve where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))-    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))-    pure $ ImageResolve-             srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageResolve where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageResolve where-  zero = ImageResolve-           zero-           zero-           zero-           zero-           zero----- | VkRenderPassBeginInfo - Structure specifying render pass begin--- information------ = Description------ @renderArea@ is the render area that is affected by the render pass--- instance. The effects of attachment load, store and multisample resolve--- operations are restricted to the pixels whose x and y coordinates fall--- within the render area on all attachments. The render area extends to--- all layers of @framebuffer@. The application /must/ ensure (using--- scissor if necessary) that all rendering is contained within the render--- area. The render area, after any transform specified by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@--- is applied, /must/ be contained within the framebuffer dimensions.------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>--- is enabled, then @renderArea@ /must/ equal the framebuffer--- pre-transformed dimensions. After @renderArea@ has been transformed by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,--- the resulting render area /must/ be equal to the framebuffer dimensions.------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- is enabled, then @renderArea@ /must/ equal the framebuffer dimensions.------ When multiview is enabled, the resolve operation at the end of a subpass--- applies to all views in the view mask.------ Note------ There /may/ be a performance cost for using a render area smaller than--- the framebuffer, unless it matches the render area granularity for the--- render pass.------ == Valid Usage------ -   #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@---     /must/ be greater than the largest attachment index in @renderPass@---     specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a---     depth\/stencil format) of---     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'------ -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If---     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid---     pointer to an array of @clearValueCount@ 'ClearValue' unions------ -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when---     creating @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.x@ /must/ be greater than or equal to 0------ -   #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.y@ /must/ be greater than or equal to 0------ -   #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less---     than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@---     the @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less---     than or equal to---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the---     @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain---     contains---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@---     /must/ be less than or equal to---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the---     @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain---     contains---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@---     /must/ be less than or equal to---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the---     @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that did not include---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     and the @pNext@ chain includes a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure, its @attachmentCount@ /must/ be zero------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     the @attachmentCount@ of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be equal to the value---     of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ have been created on---     the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and---     @renderPass@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the---     @flags@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>---     equal to the @usage@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@---     member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' with a height equal to the---     @height@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of---     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@---     equal to the @layerCount@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@---     equal to the @viewFormatCount@ member of the corresponding element---     of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a set of---     elements in---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@---     equal to the set of elements in the @pViewFormats@ member of the---     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to---     the corresponding value of---     'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03217# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the---     corresponding value of---     'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in---     @renderPass@------ -   #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain---     includes---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',---     @renderArea.offset@ /must/ equal (0,0)------ -   #VUID-VkRenderPassBeginInfo-pNext-02870# If the @pNext@ chain---     includes---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',---     @renderArea.extent@ transformed by---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@---     /must/ equal the @framebuffer@ dimensions------ == Valid Usage (Implicit)------ -   #VUID-VkRenderPassBeginInfo-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO'------ -   #VUID-VkRenderPassBeginInfo-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.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',---     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',---     or---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'------ -   #VUID-VkRenderPassBeginInfo-sType-unique# The @sType@ value of each---     struct in the @pNext@ chain /must/ be unique------ -   #VUID-VkRenderPassBeginInfo-renderPass-parameter# @renderPass@---     /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle------ -   #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle------ -   #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and---     @renderPass@ /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_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearValue', 'Vulkan.Core10.Handles.Framebuffer',--- 'Vulkan.Core10.FundamentalTypes.Rect2D',--- 'Vulkan.Core10.Handles.RenderPass',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRenderPass',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',--- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR'-data RenderPassBeginInfo (es :: [Type]) = RenderPassBeginInfo-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.-    next :: Chain es-  , -- | @renderPass@ is the render pass to begin an instance of.-    renderPass :: RenderPass-  , -- | @framebuffer@ is the framebuffer containing the attachments that are-    -- used with the render pass.-    framebuffer :: Framebuffer-  , -- | @renderArea@ is the render area that is affected by the render pass-    -- instance, and is described in more detail below.-    renderArea :: Rect2D-  , -- | @pClearValues@ is a pointer to an array of @clearValueCount@-    -- 'ClearValue' structures containing clear values for each attachment, if-    -- the attachment uses a @loadOp@ value of-    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' or if-    -- the attachment has a depth\/stencil format and uses a @stencilLoadOp@-    -- value of-    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'. The-    -- array is indexed by attachment number. Only elements corresponding to-    -- cleared attachments are used. Other elements of @pClearValues@ are-    -- ignored.-    clearValues :: Vector ClearValue-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderPassBeginInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)--instance Extensible RenderPassBeginInfo where-  extensibleTypeName = "RenderPassBeginInfo"-  setNext RenderPassBeginInfo{..} next' = RenderPassBeginInfo{next = next', ..}-  getNext RenderPassBeginInfo{..} = next-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b-  extends _ f-    | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f-    | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f-    | Just Refl <- eqT @e @RenderPassSampleLocationsBeginInfoEXT = Just f-    | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f-    | otherwise = Nothing--instance (Extendss RenderPassBeginInfo es, PokeChain es) => ToCStruct (RenderPassBeginInfo es) where-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p RenderPassBeginInfo{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)-    pNext'' <- fmap castPtr . ContT $ withChain (next)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''-    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (renderPass)-    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (framebuffer)-    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (renderArea)-    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (clearValues)) :: Word32))-    pPClearValues' <- ContT $ allocaBytes @ClearValue ((Data.Vector.length (clearValues)) * 16)-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPClearValues' `plusPtr` (16 * (i)) :: Ptr ClearValue) (e) . ($ ())) (clearValues)-    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ClearValue))) (pPClearValues')-    lift $ f-  cStructSize = 64-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)-    pNext' <- fmap castPtr . ContT $ withZeroChain @es-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (zero)-    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (zero)-    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (zero)-    lift $ f--instance es ~ '[] => Zero (RenderPassBeginInfo es) where-  zero = RenderPassBeginInfo-           ()-           zero-           zero-           zero-           mempty----- | VkClearDepthStencilValue - Structure specifying a clear depth stencil--- value------ == Valid Usage------ -   #VUID-VkClearDepthStencilValue-depth-00022# Unless the---     @VK_EXT_depth_range_unrestricted@ extension is enabled @depth@---     /must/ be between @0.0@ and @1.0@, inclusive------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearValue', 'cmdClearDepthStencilImage'-data ClearDepthStencilValue = ClearDepthStencilValue-  { -- | @depth@ is the clear value for the depth aspect of the depth\/stencil-    -- attachment. It is a floating-point value which is automatically-    -- converted to the attachment’s format.-    depth :: Float-  , -- | @stencil@ is the clear value for the stencil aspect of the-    -- depth\/stencil attachment. It is a 32-bit integer value which is-    -- converted to the attachment’s format by taking the appropriate number of-    -- LSBs.-    stencil :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ClearDepthStencilValue)-#endif-deriving instance Show ClearDepthStencilValue--instance ToCStruct ClearDepthStencilValue where-  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ClearDepthStencilValue{..} f = do-    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (depth))-    poke ((p `plusPtr` 4 :: Ptr Word32)) (stencil)-    f-  cStructSize = 8-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)-    f--instance FromCStruct ClearDepthStencilValue where-  peekCStruct p = do-    depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))-    stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))-    pure $ ClearDepthStencilValue-             (coerce @CFloat @Float depth) stencil--instance Storable ClearDepthStencilValue where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ClearDepthStencilValue where-  zero = ClearDepthStencilValue-           zero-           zero----- | VkClearAttachment - Structure specifying a clear attachment------ == Valid Usage------ -   #VUID-VkClearAttachment-aspectMask-00019# If @aspectMask@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it---     /must/ not include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkClearAttachment-aspectMask-00020# @aspectMask@ /must/ not---     include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'------ -   #VUID-VkClearAttachment-aspectMask-02246# @aspectMask@ /must/ not---     include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index /i/------ -   #VUID-VkClearAttachment-clearValue-00021# @clearValue@ /must/ be a---     valid 'ClearValue' union------ == Valid Usage (Implicit)------ -   #VUID-VkClearAttachment-aspectMask-parameter# @aspectMask@ /must/ be---     a valid combination of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values------ -   #VUID-VkClearAttachment-aspectMask-requiredbitmask# @aspectMask@---     /must/ not be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearValue',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',--- 'cmdClearAttachments'-data ClearAttachment = ClearAttachment-  { -- | @aspectMask@ is a mask selecting the color, depth and\/or stencil-    -- aspects of the attachment to be cleared.-    aspectMask :: ImageAspectFlags-  , -- | @colorAttachment@ is only meaningful if-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' is set-    -- in @aspectMask@, in which case it is an index into the currently bound-    -- color attachments.-    colorAttachment :: Word32-  , -- | @clearValue@ is the color or depth\/stencil value to clear the-    -- attachment to, as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears-values Clear Values>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch dispatching commands>.+--+-- -   The pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     controls the behavior of all+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>.+--+-- -   The pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR'+--     controls the behavior of+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' and+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'.+--+-- -   The pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'+--     controls the behavior of+--     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00777# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00778# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00779# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',+--     @pipeline@ /must/ be a compute pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00780# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+--     @pipeline@ /must/ be a graphics pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipeline-00781# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variable multisample rate>+--     feature is not supported, @pipeline@ is a graphics pipeline, the+--     current subpass+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments uses no attachments>,+--     and this is not the first call to this function with a graphics+--     pipeline after transitioning to the current subpass, then the sample+--     count specified by this pipeline /must/ match that set in the+--     previous pipeline+--+-- -   #VUID-vkCmdBindPipeline-variableSampleLocations-01525# If+--     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @pipeline@ is a+--     graphics pipeline created with a+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+--     structure having its @sampleLocationsEnable@ member set to+--     'Vulkan.Core10.FundamentalTypes.TRUE' but without+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     enabled then the current render pass instance /must/ have been begun+--     by specifying a+--     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'+--     structure whose @pPostSubpassSampleLocations@ member contains an+--     element with a @subpassIndex@ matching the current subpass index and+--     the @sampleLocationsInfo@ member of that element /must/ match the+--     @sampleLocationsInfo@ specified in+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+--     when the pipeline was created+--+-- -   #VUID-vkCmdBindPipeline-None-02323# This command /must/ not be+--     recorded when transform feedback is active+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02391# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',+--     @pipeline@ /must/ be a ray tracing pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have+--     been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--     set+--+-- -   #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a+--     secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled and @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+--     then the @pipeline@ /must/ have been created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled+--+-- -   #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a+--     secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled and @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     and @pipeline@ was created with+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+--     structure and its @discardRectangleCount@ member is not @0@, then+--     the pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     enabled+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@+--     /must/ be the same as that of any other pipelines previously bound+--     to this bind point within the current render pass instance,+--     including any pipeline already bound when beginning the render pass+--     instance+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04949# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04950# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',+--     @pipeline@ /must/ be a subpass shading pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipeline-06195# If @pipeline@ is a graphics+--     pipeline, this command has been called inside a render pass instance+--     started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and commands using the previously bound graphics pipeline have been+--     recorded within the render pass instance, then the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     specified by this pipeline /must/ match that set in the previous+--     pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipeline-06196# If @pipeline@ is a graphics+--     pipeline, this command has been called inside a render pass instance+--     started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and commands using the previously bound graphics pipeline have been+--     recorded within the render pass instance, then the elements of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     specified by this pipeline /must/ match that set in the previous+--     pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipeline-06197# If @pipeline@ is a graphics+--     pipeline, this command has been called inside a render pass instance+--     started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and commands using the previously bound graphics pipeline have been+--     recorded within the render pass instance, then the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     specified by this pipeline /must/ match that set in the previous+--     pipeline+--+-- -   #VUID-vkCmdBindPipeline-pipeline-06194# If @pipeline@ is a graphics+--     pipeline, this command has been called inside a render pass instance+--     started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and commands using the previously bound graphics pipeline have been+--     recorded within the render pass instance, then the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     specified by this pipeline /must/ match that set in the previous+--     pipeline+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-parameter#+--     @pipelineBindPoint@ /must/ be a valid+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+--+-- -   #VUID-vkCmdBindPipeline-pipeline-parameter# @pipeline@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Pipeline' handle+--+-- -   #VUID-vkCmdBindPipeline-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-vkCmdBindPipeline-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdBindPipeline-commonparent# Both of @commandBuffer@, and+--     @pipeline@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'+cmdBindPipeline :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer that the pipeline will be bound+                   -- to.+                   CommandBuffer+                -> -- | @pipelineBindPoint@ is a+                   -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+                   -- specifying to which bind point the pipeline is bound. Binding one does+                   -- not disturb the others.+                   PipelineBindPoint+                -> -- | @pipeline@ is the pipeline to be bound.+                   Pipeline+                -> io ()+cmdBindPipeline commandBuffer pipelineBindPoint pipeline = liftIO $ do+  let vkCmdBindPipelinePtr = pVkCmdBindPipeline (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdBindPipelinePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing+  let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr+  traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetViewport+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()++-- | vkCmdSetViewport - Set the viewport dynamically for a command buffer+--+-- = Description+--+-- This command sets the viewport transformation parameters state for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pViewports@+-- values used to create the currently active pipeline.+--+-- The viewport parameters taken from element i of @pViewports@ replace the+-- current state for the viewport index @firstViewport@ + i, for i in [0,+-- @viewportCount@).+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetViewport-firstViewport-01223# The sum of+--     @firstViewport@ and @viewportCount@ /must/ be between @1@ and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- -   #VUID-vkCmdSetViewport-firstViewport-01224# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @firstViewport@ /must/ be @0@+--+-- -   #VUID-vkCmdSetViewport-viewportCount-01225# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @viewportCount@ /must/ be @1@+--+-- -   #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/+--     not have+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetViewport-pViewports-parameter# @pViewports@ /must/ be+--     a valid pointer to an array of @viewportCount@ valid+--     'Vulkan.Core10.Pipeline.Viewport' structures+--+-- -   #VUID-vkCmdSetViewport-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-vkCmdSetViewport-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetViewport-viewportCount-arraylength# @viewportCount@+--     /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#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'+cmdSetViewport :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command will be+                  -- recorded.+                  CommandBuffer+               -> -- | @firstViewport@ is the index of the first viewport whose parameters are+                  -- updated by the command.+                  ("firstViewport" ::: Word32)+               -> -- | @pViewports@ is a pointer to an array of+                  -- 'Vulkan.Core10.Pipeline.Viewport' structures specifying viewport+                  -- parameters.+                  ("viewports" ::: Vector Viewport)+               -> io ()+cmdSetViewport commandBuffer firstViewport viewports = liftIO . evalContT $ do+  let vkCmdSetViewportPtr = pVkCmdSetViewport (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetViewportPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewport is null" Nothing Nothing+  let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr+  pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)+  lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetScissor+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()++-- | vkCmdSetScissor - Set scissor rectangles dynamically for a command+-- buffer+--+-- = Description+--+-- The scissor rectangles taken from element i of @pScissors@ replace the+-- current state for the scissor index @firstScissor@ + i, for i in [0,+-- @scissorCount@).+--+-- This command sets the scissor rectangles for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pScissors@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetScissor-firstScissor-00592# The sum of @firstScissor@+--     and @scissorCount@ /must/ be between @1@ and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- -   #VUID-vkCmdSetScissor-firstScissor-00593# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @firstScissor@ /must/ be @0@+--+-- -   #VUID-vkCmdSetScissor-scissorCount-00594# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @scissorCount@ /must/ be @1@+--+-- -   #VUID-vkCmdSetScissor-x-00595# The @x@ and @y@ members of @offset@+--     member of any element of @pScissors@ /must/ be greater than or equal+--     to @0@+--+-- -   #VUID-vkCmdSetScissor-offset-00596# Evaluation of (@offset.x@ ++--     @extent.width@) /must/ not cause a signed integer addition overflow+--     for any element of @pScissors@+--+-- -   #VUID-vkCmdSetScissor-offset-00597# Evaluation of (@offset.y@ ++--     @extent.height@) /must/ not cause a signed integer addition overflow+--     for any element of @pScissors@+--+-- -   #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is+--     recorded in a secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled, then this function /must/ not be called+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetScissor-pScissors-parameter# @pScissors@ /must/ be a+--     valid pointer to an array of @scissorCount@+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- -   #VUID-vkCmdSetScissor-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-vkCmdSetScissor-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetScissor-scissorCount-arraylength# @scissorCount@+--     /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#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D'+cmdSetScissor :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @firstScissor@ is the index of the first scissor whose state is updated+                 -- by the command.+                 ("firstScissor" ::: Word32)+              -> -- | @pScissors@ is a pointer to an array of+                 -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining scissor+                 -- rectangles.+                 ("scissors" ::: Vector Rect2D)+              -> io ()+cmdSetScissor commandBuffer firstScissor scissors = liftIO . evalContT $ do+  let vkCmdSetScissorPtr = pVkCmdSetScissor (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetScissorPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissor is null" Nothing Nothing+  let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr+  pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)+  lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor' (commandBufferHandle (commandBuffer)) (firstScissor) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetLineWidth+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()++-- | vkCmdSetLineWidth - Set line width dynamically for a command buffer+--+-- = Description+--+-- This command sets the line width for subsequent drawing commands when+-- the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@lineWidth@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetLineWidth-lineWidth-00788# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wide lines>+--     feature is not enabled, @lineWidth@ /must/ be @1.0@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetLineWidth-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetLineWidth-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-vkCmdSetLineWidth-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetLineWidth :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command will be+                   -- recorded.+                   CommandBuffer+                -> -- | @lineWidth@ is the width of rasterized line segments.+                   ("lineWidth" ::: Float)+                -> io ()+cmdSetLineWidth commandBuffer lineWidth = liftIO $ do+  let vkCmdSetLineWidthPtr = pVkCmdSetLineWidth (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetLineWidthPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing+  let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr+  traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth' (commandBufferHandle (commandBuffer)) (CFloat (lineWidth)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthBias+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()++-- | vkCmdSetDepthBias - Set depth bias factors and clamp dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth bias parameters for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@depthBiasConstantFactor@,+-- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the+-- currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depth bias clamping>+--     feature is not enabled, @depthBiasClamp@ /must/ be @0.0@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthBias-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthBias-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-vkCmdSetDepthBias-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBias :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command will be+                   -- recorded.+                   CommandBuffer+                -> -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant+                   -- depth value added to each fragment.+                   ("depthBiasConstantFactor" ::: Float)+                -> -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.+                   ("depthBiasClamp" ::: Float)+                -> -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope+                   -- in depth bias calculations.+                   ("depthBiasSlopeFactor" ::: Float)+                -> io ()+cmdSetDepthBias commandBuffer depthBiasConstantFactor depthBiasClamp depthBiasSlopeFactor = liftIO $ do+  let vkCmdSetDepthBiasPtr = pVkCmdSetDepthBias (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing+  let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr+  traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias' (commandBufferHandle (commandBuffer)) (CFloat (depthBiasConstantFactor)) (CFloat (depthBiasClamp)) (CFloat (depthBiasSlopeFactor)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetBlendConstants+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()++-- | vkCmdSetBlendConstants - Set the values of blend constants+--+-- = Description+--+-- This command sets blend constants for subsequent drawing commands when+-- the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@blendConstants@+-- values used to create the currently active pipeline.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetBlendConstants-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetBlendConstants-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-vkCmdSetBlendConstants-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetBlendConstants :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @blendConstants@ is a pointer to an array of four values specifying the+                        -- Rc, Gc, Bc, and Ac components of the blend constant color used in+                        -- blending, depending on the+                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.+                        ("blendConstants" ::: (Float, Float, Float, Float))+                     -> io ()+cmdSetBlendConstants commandBuffer blendConstants = liftIO . evalContT $ do+  let vkCmdSetBlendConstantsPtr = pVkCmdSetBlendConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetBlendConstantsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetBlendConstants is null" Nothing Nothing+  let vkCmdSetBlendConstants' = mkVkCmdSetBlendConstants vkCmdSetBlendConstantsPtr+  pBlendConstants <- ContT $ allocaBytes @(FixedArray 4 CFloat) 16+  let pBlendConstants' = lowerArrayPtr pBlendConstants+  lift $ case (blendConstants) of+    (e0, e1, e2, e3) -> do+      poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))+      poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+      poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+      poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))+  lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants' (commandBufferHandle (commandBuffer)) (pBlendConstants))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthBounds+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()++-- | vkCmdSetDepthBounds - Set depth bounds range dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the depth bounds range for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@minDepthBounds@+-- and+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@maxDepthBounds@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthBounds-minDepthBounds-00600# Unless the+--     @VK_EXT_depth_range_unrestricted@ extension is enabled+--     @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- -   #VUID-vkCmdSetDepthBounds-maxDepthBounds-00601# Unless the+--     @VK_EXT_depth_range_unrestricted@ extension is enabled+--     @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthBounds-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthBounds-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-vkCmdSetDepthBounds-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBounds :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which the command will be+                     -- recorded.+                     CommandBuffer+                  -> -- | @minDepthBounds@ is the minimum depth bound.+                     ("minDepthBounds" ::: Float)+                  -> -- | @maxDepthBounds@ is the maximum depth bound.+                     ("maxDepthBounds" ::: Float)+                  -> io ()+cmdSetDepthBounds commandBuffer minDepthBounds maxDepthBounds = liftIO $ do+  let vkCmdSetDepthBoundsPtr = pVkCmdSetDepthBounds (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing+  let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr+  traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds' (commandBufferHandle (commandBuffer)) (CFloat (minDepthBounds)) (CFloat (maxDepthBounds)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilCompareMask+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()++-- | vkCmdSetStencilCompareMask - Set stencil compare mask dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil compare mask for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@compareMask@+-- value used to create the currently active pipeline, for both front and+-- back faces.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetStencilCompareMask-faceMask-parameter# @faceMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- -   #VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask#+--     @faceMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdSetStencilCompareMask-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-vkCmdSetStencilCompareMask-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'+cmdSetStencilCompareMask :: forall io+                          . (MonadIO io)+                         => -- | @commandBuffer@ is the command buffer into which the command will be+                            -- recorded.+                            CommandBuffer+                         -> -- | @faceMask@ is a bitmask of+                            -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+                            -- the set of stencil state for which to update the compare mask.+                            ("faceMask" ::: StencilFaceFlags)+                         -> -- | @compareMask@ is the new value to use as the stencil compare mask.+                            ("compareMask" ::: Word32)+                         -> io ()+cmdSetStencilCompareMask commandBuffer faceMask compareMask = liftIO $ do+  let vkCmdSetStencilCompareMaskPtr = pVkCmdSetStencilCompareMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing+  let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr+  traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask' (commandBufferHandle (commandBuffer)) (faceMask) (compareMask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilWriteMask+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()++-- | vkCmdSetStencilWriteMask - Set stencil write mask dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil write mask for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@writeMask@+-- value used to create the currently active pipeline, for both front and+-- back faces.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetStencilWriteMask-faceMask-parameter# @faceMask@ /must/+--     be a valid combination of+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- -   #VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask# @faceMask@+--     /must/ not be @0@+--+-- -   #VUID-vkCmdSetStencilWriteMask-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-vkCmdSetStencilWriteMask-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'+cmdSetStencilWriteMask :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command will be+                          -- recorded.+                          CommandBuffer+                       -> -- | @faceMask@ is a bitmask of+                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+                          -- the set of stencil state for which to update the write mask, as+                          -- described above for 'cmdSetStencilCompareMask'.+                          ("faceMask" ::: StencilFaceFlags)+                       -> -- | @writeMask@ is the new value to use as the stencil write mask.+                          ("writeMask" ::: Word32)+                       -> io ()+cmdSetStencilWriteMask commandBuffer faceMask writeMask = liftIO $ do+  let vkCmdSetStencilWriteMaskPtr = pVkCmdSetStencilWriteMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing+  let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr+  traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask' (commandBufferHandle (commandBuffer)) (faceMask) (writeMask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilReference+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()++-- | vkCmdSetStencilReference - Set stencil reference value dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil reference value for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@reference@+-- value used to create the currently active pipeline, for both front and+-- back faces.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetStencilReference-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetStencilReference-faceMask-parameter# @faceMask@ /must/+--     be a valid combination of+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- -   #VUID-vkCmdSetStencilReference-faceMask-requiredbitmask# @faceMask@+--     /must/ not be @0@+--+-- -   #VUID-vkCmdSetStencilReference-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-vkCmdSetStencilReference-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'+cmdSetStencilReference :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command will be+                          -- recorded.+                          CommandBuffer+                       -> -- | @faceMask@ is a bitmask of+                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+                          -- the set of stencil state for which to update the reference value, as+                          -- described above for 'cmdSetStencilCompareMask'.+                          ("faceMask" ::: StencilFaceFlags)+                       -> -- | @reference@ is the new value to use as the stencil reference value.+                          ("reference" ::: Word32)+                       -> io ()+cmdSetStencilReference commandBuffer faceMask reference = liftIO $ do+  let vkCmdSetStencilReferencePtr = pVkCmdSetStencilReference (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing+  let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr+  traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference' (commandBufferHandle (commandBuffer)) (faceMask) (reference))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindDescriptorSets+  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()++-- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer+--+-- = Description+--+-- 'cmdBindDescriptorSets' causes the sets numbered [@firstSet@..+-- @firstSet@+@descriptorSetCount@-1] to use the bindings stored in+-- @pDescriptorSets@[0..descriptorSetCount-1] for subsequent+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- set by @pipelineBindPoint@. Any bindings that were previously applied+-- via these sets 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+-- either a different set is bound to the same set number, or the set is+-- disturbed as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+--+-- A compatible descriptor set /must/ be bound for all set numbers that any+-- shaders in a pipeline access, at the time that a drawing or dispatching+-- command is recorded to execute using that pipeline. However, if none of+-- the shaders in a pipeline statically use any bindings with a particular+-- set number, then no descriptor set need be bound for that set number,+-- even if the pipeline layout includes a non-trivial descriptor set layout+-- for that set number.+--+-- If any of the sets being bound include dynamic uniform or storage+-- buffers, then @pDynamicOffsets@ includes one element for each array+-- element in each dynamic descriptor type binding in each set. Values are+-- taken from @pDynamicOffsets@ in an order such that all entries for set N+-- come before set N+1; within a set, entries are ordered by the binding+-- numbers in the descriptor set layouts; and within a binding array,+-- elements are in order. @dynamicOffsetCount@ /must/ equal the total+-- number of dynamic descriptors in the sets being bound.+--+-- The effective offset used for dynamic uniform and storage buffer+-- bindings is the sum of the relative offset taken from @pDynamicOffsets@,+-- and the base address of the buffer plus base offset in the descriptor+-- set. The range of the dynamic uniform and storage buffer bindings is the+-- buffer range as specified in the descriptor set.+--+-- Each of the @pDescriptorSets@ /must/ be compatible with the pipeline+-- layout specified by @layout@. The layout used to program the bindings+-- /must/ also be compatible with the pipeline used in subsequent+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- with that pipeline type, as defined in the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>+-- section.+--+-- The descriptor set contents bound by a call to 'cmdBindDescriptorSets'+-- /may/ be consumed at the following times:+--+-- -   For descriptor bindings created with the+--     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+--     bit set, the contents /may/ be consumed when the command buffer is+--     submitted to a queue, or during shader execution of the resulting+--     draws and dispatches, or any time in between. Otherwise,+--+-- -   during host execution of the command, or during shader execution of+--     the resulting draws and dispatches, or any time in between.+--+-- Thus, the contents of a descriptor set binding /must/ not be altered+-- (overwritten by an update command, or freed) between the first point in+-- time that it /may/ be consumed, and when the command completes executing+-- on the queue.+--+-- The contents of @pDynamicOffsets@ are consumed immediately during+-- execution of 'cmdBindDescriptorSets'. Once all pending uses have+-- completed, it is legal to update and reuse a descriptor set.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358# Each element of+--     @pDescriptorSets@ /must/ have been allocated with a+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that matches (is the+--     same as, or identically defined as) the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' at set /n/ in @layout@,+--     where /n/ is the sum of @firstSet@ and the index into+--     @pDescriptorSets@+--+-- -   #VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359#+--     @dynamicOffsetCount@ /must/ be equal to the total number of dynamic+--     descriptors in @pDescriptorSets@+--+-- -   #VUID-vkCmdBindDescriptorSets-firstSet-00360# The sum of @firstSet@+--     and @descriptorSetCount@ /must/ be less than or equal to+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@+--     provided when @layout@ was created+--+-- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#+--     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s+--     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family+--+-- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971# Each element of+--     @pDynamicOffsets@ which corresponds to a descriptor binding with+--     type+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'+--     /must/ be a multiple of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minUniformBufferOffsetAlignment@+--+-- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972# Each element of+--     @pDynamicOffsets@ which corresponds to a descriptor binding with+--     type+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'+--     /must/ be a multiple of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minStorageBufferOffsetAlignment@+--+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each+--     dynamic uniform or storage buffer binding in @pDescriptorSets@, the+--     sum of the effective offset, as defined above, and the range of the+--     binding /must/ be less than or equal to the size of the buffer+--+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of+--     @pDescriptorSets@ /must/ not have been allocated from a+--     'Vulkan.Core10.Handles.DescriptorPool' with the+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+--     flag set+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter#+--     @pipelineBindPoint@ /must/ be a valid+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+--+-- -   #VUID-vkCmdBindDescriptorSets-layout-parameter# @layout@ /must/ be a+--     valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter#+--     @pDescriptorSets@ /must/ be a valid pointer to an array of+--     @descriptorSetCount@ valid 'Vulkan.Core10.Handles.DescriptorSet'+--     handles+--+-- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter# If+--     @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a valid+--     pointer to an array of @dynamicOffsetCount@ @uint32_t@ values+--+-- -   #VUID-vkCmdBindDescriptorSets-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-vkCmdBindDescriptorSets-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#+--     @descriptorSetCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,+--     @layout@, and the elements of @pDescriptorSets@ /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.DescriptorSet',+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',+-- 'Vulkan.Core10.Handles.PipelineLayout'+cmdBindDescriptorSets :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer that the descriptor sets will be+                         -- bound to.+                         CommandBuffer+                      -> -- | @pipelineBindPoint@ is a+                         -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the+                         -- type of the pipeline that will use the descriptors. There is a separate+                         -- set of bind points for each pipeline type, so binding one does not+                         -- disturb the others.+                         PipelineBindPoint+                      -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to+                         -- program the bindings.+                         PipelineLayout+                      -> -- | @firstSet@ is the set number of the first descriptor set to be bound.+                         ("firstSet" ::: Word32)+                      -> -- | @pDescriptorSets@ is a pointer to an array of handles to+                         -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor+                         -- sets to bind to.+                         ("descriptorSets" ::: Vector DescriptorSet)+                      -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values+                         -- specifying dynamic offsets.+                         ("dynamicOffsets" ::: Vector Word32)+                      -> io ()+cmdBindDescriptorSets commandBuffer pipelineBindPoint layout firstSet descriptorSets dynamicOffsets = liftIO . evalContT $ do+  let vkCmdBindDescriptorSetsPtr = pVkCmdBindDescriptorSets (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBindDescriptorSetsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorSets is null" Nothing Nothing+  let vkCmdBindDescriptorSets' = mkVkCmdBindDescriptorSets vkCmdBindDescriptorSetsPtr+  pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)+  pPDynamicOffsets <- ContT $ allocaBytes @Word32 ((Data.Vector.length (dynamicOffsets)) * 4)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)+  lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (firstSet) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets) ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32)) (pPDynamicOffsets))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindIndexBuffer+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()++-- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindIndexBuffer-offset-00431# @offset@ /must/ be less+--     than the size of @buffer@+--+-- -   #VUID-vkCmdBindIndexBuffer-offset-00432# The sum of @offset@ and the+--     address of the range of 'Vulkan.Core10.Handles.DeviceMemory' object+--     that is backing @buffer@, /must/ be a multiple of the type indicated+--     by @indexType@+--+-- -   #VUID-vkCmdBindIndexBuffer-buffer-00433# @buffer@ /must/ have been+--     created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'+--     flag+--+-- -   #VUID-vkCmdBindIndexBuffer-buffer-00434# If @buffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBindIndexBuffer-indexType-02507# @indexType@ /must/ not+--     be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'+--+-- -   #VUID-vkCmdBindIndexBuffer-indexType-02765# If @indexType@ is+--     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindIndexBuffer-buffer-parameter# @buffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdBindIndexBuffer-indexType-parameter# @indexType@ /must/+--     be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value+--+-- -   #VUID-vkCmdBindIndexBuffer-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-vkCmdBindIndexBuffer-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBindIndexBuffer-commonparent# Both of @buffer@, and+--     @commandBuffer@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.IndexType.IndexType'+cmdBindIndexBuffer :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command is+                      -- recorded.+                      CommandBuffer+                   -> -- | @buffer@ is the buffer being bound.+                      Buffer+                   -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index+                      -- buffer address calculations.+                      ("offset" ::: DeviceSize)+                   -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value+                      -- specifying the size of the indices.+                      IndexType+                   -> io ()+cmdBindIndexBuffer commandBuffer buffer offset indexType = liftIO $ do+  let vkCmdBindIndexBufferPtr = pVkCmdBindIndexBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing+  let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr+  traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer' (commandBufferHandle (commandBuffer)) (buffer) (offset) (indexType))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindVertexBuffers+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()++-- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer+--+-- = Description+--+-- The values taken from elements i of @pBuffers@ and @pOffsets@ replace+-- the current state for the vertex input binding @firstBinding@ + i, for i+-- in [0, @bindingCount@). The vertex input binding is updated to start at+-- the offset indicated by @pOffsets@[i] from the start of the buffer+-- @pBuffers@[i]. All vertex input attributes that use each of these+-- bindings will use these updated addresses in their address calculations+-- for subsequent drawing commands. If the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is enabled, elements of @pBuffers@ /can/ be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the+-- vertex shader. If a vertex input attribute is bound to a vertex input+-- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values+-- taken from memory are considered to be zero, and missing G, B, or A+-- components are+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindVertexBuffers-firstBinding-00624# @firstBinding@+--     /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-vkCmdBindVertexBuffers-firstBinding-00625# The sum of+--     @firstBinding@ and @bindingCount@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-vkCmdBindVertexBuffers-pOffsets-00626# All elements of+--     @pOffsets@ /must/ be less than the size of the corresponding element+--     in @pBuffers@+--+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-00627# All elements of+--     @pBuffers@ /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'+--     flag+--+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-00628# Each element of+--     @pBuffers@ that is non-sparse /must/ be bound completely and+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-04001# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all elements of @pBuffers@ /must/ not be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-04002# If an element of+--     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     corresponding element of @pOffsets@ /must/ be zero+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindVertexBuffers-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-parameter# @pBuffers@ /must/+--     be a valid pointer to an array of @bindingCount@ valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--     'Vulkan.Core10.Handles.Buffer' handles+--+-- -   #VUID-vkCmdBindVertexBuffers-pOffsets-parameter# @pOffsets@ /must/+--     be a valid pointer to an array of @bindingCount@+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   #VUID-vkCmdBindVertexBuffers-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-vkCmdBindVertexBuffers-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBindVertexBuffers-bindingCount-arraylength#+--     @bindingCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdBindVertexBuffers-commonparent# Both of @commandBuffer@,+--     and the elements of @pBuffers@ that are valid handles of non-ignored+--     parameters /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdBindVertexBuffers :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command is+                        -- recorded.+                        CommandBuffer+                     -> -- | @firstBinding@ is the index of the first vertex input binding whose+                        -- state is updated by the command.+                        ("firstBinding" ::: Word32)+                     -> -- | @pBuffers@ is a pointer to an array of buffer handles.+                        ("buffers" ::: Vector Buffer)+                     -> -- | @pOffsets@ is a pointer to an array of buffer offsets.+                        ("offsets" ::: Vector DeviceSize)+                     -> io ()+cmdBindVertexBuffers commandBuffer firstBinding buffers offsets = liftIO . evalContT $ do+  let vkCmdBindVertexBuffersPtr = pVkCmdBindVertexBuffers (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBindVertexBuffersPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers is null" Nothing Nothing+  let vkCmdBindVertexBuffers' = mkVkCmdBindVertexBuffers vkCmdBindVertexBuffersPtr+  let pBuffersLength = Data.Vector.length $ (buffers)+  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $+    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing+  pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)+  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 "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDraw+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDraw - Draw primitives+--+-- = Description+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @vertexCount@ consecutive vertex indices with the+-- first @vertexIndex@ value equal to @firstVertex@. The primitives are+-- drawn @instanceCount@ times with @instanceIndex@ starting with+-- @firstInstance@ and increasing sequentially for each instance. The+-- assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDraw-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDraw-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDraw-None-06479# If a 'Vulkan.Core10.Handles.ImageView'+--     is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDraw-None-02691# If a 'Vulkan.Core10.Handles.ImageView'+--     is accessed using atomic operations as a result of this command,+--     then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDraw-None-02692# If a 'Vulkan.Core10.Handles.ImageView'+--     is sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDraw-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a+--     reduction mode of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image'+--     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+--     containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-06423# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being written as a storage image+--     or storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-06424# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being read as a storage image or+--     storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-None-02697# For each set /n/ that is statically used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point used by this command, a descriptor set /must/ have been bound+--     to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     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 if they+--     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDraw-None-02700# A valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDraw-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDraw-None-02859# There /must/ not have been any calls to+--     dynamic state setting commands for any state not specified as+--     dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command, since that pipeline was+--     bound+--+-- -   #VUID-vkCmdDraw-None-02702# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a 'Vulkan.Core10.Handles.Sampler' object that uses+--     unnormalized coordinates, that sampler /must/ not be used to sample+--     from any 'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDraw-None-02703# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a 'Vulkan.Core10.Handles.Sampler' object that uses+--     unnormalized coordinates, that sampler /must/ not be used with any+--     of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@+--     instructions with @ImplicitLod@, @Dref@ or @Proj@ in their name, in+--     any shader stage+--+-- -   #VUID-vkCmdDraw-None-02704# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a 'Vulkan.Core10.Handles.Sampler' object that uses+--     unnormalized coordinates, that sampler /must/ not be used with any+--     of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@+--     instructions that includes a LOD bias or any offset values, in any+--     shader stage+--+-- -   #VUID-vkCmdDraw-None-02705# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a uniform buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDraw-None-02706# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a storage buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDraw-None-04115# If a 'Vulkan.Core10.Handles.ImageView'+--     is accessed using @OpImageWrite@ as a result of this command, then+--     the @Type@ of the @Texel@ operand of that instruction /must/ have at+--     least as many components as the image view’s format+--+-- -   #VUID-vkCmdDraw-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDraw-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDraw-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDraw-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDraw-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDraw-renderPass-02684# The current render pass /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDraw-subpass-02685# The subpass index of the current+--     render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDraw-None-02686# Every input attachment used by the+--     current subpass /must/ be bound to the pipeline via a descriptor set+--+-- -   #VUID-vkCmdDraw-None-04584# Image subresources used as attachments+--     in the current render pass /must/ not be accessed in any way other+--     than as an attachment by this command, except for cases involving+--     read-only access to depth\/stencil attachments as described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+--     chapter+--+-- -   #VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688# If the draw is+--     recorded in a render pass instance with multiview enabled, the+--     maximum instance index /must/ be less than or equal to+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- -   #VUID-vkCmdDraw-sampleLocationsEnable-02689# If the bound graphics+--     pipeline was created with+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+--     has a depth\/stencil attachment, then that attachment /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDraw-viewportCount-03417# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDraw-scissorCount-03418# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDraw-viewportCount-03419# If the bound graphics pipeline+--     state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-viewportCount-04139# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-viewportCount-04140# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-04877# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-logicOp-04878# If the bound graphics pipeline state+--     was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ be @1@+--+-- -   #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled+--     in the bound graphics pipeline, then for each color attachment in+--     the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDraw-rasterizationSamples-04740# If rasterization is not+--     disabled in the bound graphics pipeline, and neither the+--     @VK_AMD_mixed_attachment_samples@ nor the+--     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDraw-imageView-06172# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDraw-imageView-06173# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDraw-imageView-06174# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDraw-imageView-06175# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDraw-imageView-06176# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDraw-imageView-06177# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDraw-viewMask-06178# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-06180# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDraw-pStencilAttachment-06182# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDraw-imageView-06183# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdDraw-imageView-06184# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-06185# If the currently bound+--     pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the corresponding element of the+--     @pColorAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-pDepthAttachment-06186# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDraw-pStencilAttachment-06187# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-06188# If the currently bound+--     pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-pDepthAttachment-06189# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDraw-pStencilAttachment-06190# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDraw-renderPass-06198# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource written to by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be an unprotected resource+--+-- -   #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, pipeline stages other than the framebuffer-space+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command /must/ not+--     write to any resource+--+-- -   #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point used by this command uses the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+--     capability, then @commandBuffer@ /must/ not be a protected command+--     buffer+--+-- -   #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via+--     vertex input variables declared in the vertex shader entry point’s+--     interface /must/ have either valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- -   #VUID-vkCmdDraw-None-04008# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all vertex input bindings accessed via+--     vertex input variables declared in the vertex shader entry point’s+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any+--     attribute data fetched /must/ be entirely contained within the+--     corresponding vertex buffer binding, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- -   #VUID-vkCmdDraw-primitiveTopology-03420# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+--+-- -   #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was+--     created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic states enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was+--     created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not+--     have been created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDraw-renderpass# This command /must/ only be called+--     inside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDraw :: forall io+         . (MonadIO io)+        => -- | @commandBuffer@ is the command buffer into which the command is+           -- recorded.+           CommandBuffer+        -> -- | @vertexCount@ is the number of vertices to draw.+           ("vertexCount" ::: Word32)+        -> -- | @instanceCount@ is the number of instances to draw.+           ("instanceCount" ::: Word32)+        -> -- | @firstVertex@ is the index of the first vertex to draw.+           ("firstVertex" ::: Word32)+        -> -- | @firstInstance@ is the instance ID of the first instance to draw.+           ("firstInstance" ::: Word32)+        -> io ()+cmdDraw commandBuffer vertexCount instanceCount firstVertex firstInstance = liftIO $ do+  let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing+  let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr+  traceAroundEvent "vkCmdDraw" (vkCmdDraw' (commandBufferHandle (commandBuffer)) (vertexCount) (instanceCount) (firstVertex) (firstInstance))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawIndexed+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()++-- | vkCmdDrawIndexed - Draw primitives with indexed vertices+--+-- = Description+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @indexCount@ vertices whose indices are retrieved+-- from the index buffer. The index buffer is treated as an array of+-- tightly packed unsigned integers of size defined by the+-- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was+-- bound.+--+-- The first vertex index is at an offset of @firstIndex@ × @indexSize@ ++-- @offset@ within the bound index buffer, where @offset@ is the offset+-- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of+-- the type specified by @indexType@. Subsequent index values are retrieved+-- from consecutive locations in the index buffer. Indices are first+-- compared to the primitive restart value, then zero extended to 32 bits+-- (if the @indexType@ is+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have+-- @vertexOffset@ added to them, before being supplied as the @vertexIndex@+-- value.+--+-- The primitives are drawn @instanceCount@ times with @instanceIndex@+-- starting with @firstInstance@ and increasing sequentially for each+-- instance. The assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawIndexed-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndexed-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a+--     reduction mode of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndexed-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-06423# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being written as a storage image+--     or storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-06424# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being read as a storage image or+--     storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-02697# For each set /n/ that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a descriptor set /must/+--     have been bound to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     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+--     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+--+-- -   #VUID-vkCmdDrawIndexed-None-02700# A valid pipeline /must/ be bound+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDrawIndexed-None-02859# There /must/ not have been any+--     calls to dynamic state setting commands for any state not specified+--     as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to+--     the pipeline bind point used by this command, since that pipeline+--     was bound+--+-- -   #VUID-vkCmdDrawIndexed-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawIndexed-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexed-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexed-None-02705# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a uniform buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexed-None-02706# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a storage buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawIndexed-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexed-renderPass-02684# The current render pass+--     /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexed-subpass-02685# The subpass index of the+--     current render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexed-None-02686# Every input attachment used by+--     the current subpass /must/ be bound to the pipeline via a descriptor+--     set+--+-- -   #VUID-vkCmdDrawIndexed-None-04584# Image subresources used as+--     attachments in the current render pass /must/ not be accessed in any+--     way other than as an attachment by this command, except for cases+--     involving read-only access to depth\/stencil attachments as+--     described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+--     chapter+--+-- -   #VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688# If the draw+--     is recorded in a render pass instance with multiview enabled, the+--     maximum instance index /must/ be less than or equal to+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689# If the bound+--     graphics pipeline was created with+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+--     has a depth\/stencil attachment, then that attachment /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-03417# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexed-scissorCount-03418# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-03419# If the bound graphics+--     pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-04139# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-04140# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-04877# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-logicOp-04878# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ be @1@+--+-- -   #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not+--     disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndexed-rasterizationSamples-04740# If rasterization+--     is not disabled in the bound graphics pipeline, and neither the+--     @VK_AMD_mixed_attachment_samples@ nor the+--     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06173# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06174# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06175# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06176# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06177# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-viewMask-06178# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06180# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06182# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06184# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06185# If the currently+--     bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the corresponding element of the+--     @pColorAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06186# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06187# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06188# If the currently+--     bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06189# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06190# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource written to by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be an unprotected resource+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, pipeline stages other than the framebuffer-space+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command /must/ not+--     write to any resource+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader+--     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point used by this command uses the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+--     capability, then @commandBuffer@ /must/ not be a protected command+--     buffer+--+-- -   #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings+--     accessed via vertex input variables declared in the vertex shader+--     entry point’s interface /must/ have either valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- -   #VUID-vkCmdDrawIndexed-None-04008# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all vertex input bindings accessed via+--     vertex input variables declared in the vertex shader entry point’s+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer+--     binding, any attribute data fetched /must/ be entirely contained+--     within the corresponding vertex buffer binding, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- -   #VUID-vkCmdDrawIndexed-primitiveTopology-03420# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+--+-- -   #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline+--     was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic states enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline+--     /must/ not have been created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+--+-- -   #VUID-vkCmdDrawIndexed-firstIndex-04932# (@indexSize@ ×+--     (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or+--     equal to the size of the bound index buffer, with @indexSize@ being+--     based on the type specified by @indexType@, where the index buffer,+--     @indexType@, and @offset@ are specified via 'cmdBindIndexBuffer'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawIndexed :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command is+                  -- recorded.+                  CommandBuffer+               -> -- | @indexCount@ is the number of vertices to draw.+                  ("indexCount" ::: Word32)+               -> -- | @instanceCount@ is the number of instances to draw.+                  ("instanceCount" ::: Word32)+               -> -- | @firstIndex@ is the base index within the index buffer.+                  ("firstIndex" ::: Word32)+               -> -- | @vertexOffset@ is the value added to the vertex index before indexing+                  -- into the vertex buffer.+                  ("vertexOffset" ::: Int32)+               -> -- | @firstInstance@ is the instance ID of the first instance to draw.+                  ("firstInstance" ::: Word32)+               -> io ()+cmdDrawIndexed commandBuffer indexCount instanceCount firstIndex vertexOffset firstInstance = liftIO $ do+  let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawIndexedPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing+  let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr+  traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed' (commandBufferHandle (commandBuffer)) (indexCount) (instanceCount) (firstIndex) (vertexOffset) (firstInstance))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawIndirect+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawIndirect - Draw primitives with indirect parameters+--+-- = Description+--+-- 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the+-- parameters are read by the device from a buffer during execution.+-- @drawCount@ draws are executed by the command, with parameters taken+-- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for+-- each successive draw. The parameters of each draw are encoded in an+-- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawIndirect-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndirect-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a+--     reduction mode of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndirect-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-06423# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being written as a storage image+--     or storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-06424# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being read as a storage image or+--     storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-02697# For each set /n/ that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a descriptor set /must/+--     have been bound to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     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+--     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+--+-- -   #VUID-vkCmdDrawIndirect-None-02700# A valid pipeline /must/ be bound+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDrawIndirect-None-02859# There /must/ not have been any+--     calls to dynamic state setting commands for any state not specified+--     as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to+--     the pipeline bind point used by this command, since that pipeline+--     was bound+--+-- -   #VUID-vkCmdDrawIndirect-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawIndirect-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawIndirect-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawIndirect-None-02705# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a uniform buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndirect-None-02706# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a storage buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawIndirect-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-renderPass-02684# The current render pass+--     /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndirect-subpass-02685# The subpass index of the+--     current render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndirect-None-02686# Every input attachment used by+--     the current subpass /must/ be bound to the pipeline via a descriptor+--     set+--+-- -   #VUID-vkCmdDrawIndirect-None-04584# Image subresources used as+--     attachments in the current render pass /must/ not be accessed in any+--     way other than as an attachment by this command, except for cases+--     involving read-only access to depth\/stencil attachments as+--     described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+--     chapter+--+-- -   #VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688# If the draw+--     is recorded in a render pass instance with multiview enabled, the+--     maximum instance index /must/ be less than or equal to+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689# If the bound+--     graphics pipeline was created with+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+--     has a depth\/stencil attachment, then that attachment /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-03417# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndirect-scissorCount-03418# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-03419# If the bound graphics+--     pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-04139# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-04140# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-04877# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ be @1@+--+-- -   #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not+--     disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndirect-rasterizationSamples-04740# If rasterization+--     is not disabled in the bound graphics pipeline, and neither the+--     @VK_AMD_mixed_attachment_samples@ nor the+--     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06173# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06174# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06175# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06176# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06177# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-viewMask-06178# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06180# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06182# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06184# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06185# If the currently+--     bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the corresponding element of the+--     @pColorAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06186# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06187# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06188# If the currently+--     bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06189# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06190# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings+--     accessed via vertex input variables declared in the vertex shader+--     entry point’s interface /must/ have either valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- -   #VUID-vkCmdDrawIndirect-None-04008# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all vertex input bindings accessed via+--     vertex input variables declared in the vertex shader entry point’s+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer+--     binding, any attribute data fetched /must/ be entirely contained+--     within the corresponding vertex buffer binding, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- -   #VUID-vkCmdDrawIndirect-primitiveTopology-03420# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+--+-- -   #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline+--     was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic states enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline+--     /must/ not have been created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+--+-- -   #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then+--     it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been+--     created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple+--     of @4@+--+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/+--     not be a protected command buffer+--+-- -   #VUID-vkCmdDrawIndirect-drawCount-02718# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   #VUID-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawIndirect-firstInstance-00478# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, all the @firstInstance@ members of the+--     'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures accessed+--     by this command /must/ be @0@+--+-- -   #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater+--     than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater+--     than or equal to+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')+--+-- -   #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to+--     @1@, (@offset@ ++--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be+--     less than or equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater+--     than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be+--     less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawIndirect-commonparent# Both of @buffer@, and+--     @commandBuffer@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawIndirect :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command is+                   -- recorded.+                   CommandBuffer+                -> -- | @buffer@ is the buffer containing draw parameters.+                   Buffer+                -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+                   ("offset" ::: DeviceSize)+                -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.+                   ("drawCount" ::: Word32)+                -> -- | @stride@ is the byte stride between successive sets of draw parameters.+                   ("stride" ::: Word32)+                -> io ()+cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do+  let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawIndirectPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing+  let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr+  traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawIndexedIndirect+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and+-- indexed vertices+--+-- = Description+--+-- 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except+-- that the parameters are read by the device from a buffer during+-- execution. @drawCount@ draws are executed by the command, with+-- parameters taken from @buffer@ starting at @offset@ and increasing by+-- @stride@ bytes for each successive draw. The parameters of each draw are+-- encoded in an array of+-- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a+--     reduction mode of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being written as a storage image+--     or storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being read as a storage image or+--     storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02697# For each set /n/ that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a descriptor set /must/+--     have been bound to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     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+--     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+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02700# A valid pipeline /must/+--     be bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02859# There /must/ not have+--     been any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02705# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a uniform buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02706# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a storage buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-renderPass-02684# The current render+--     pass /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-subpass-02685# The subpass index of+--     the current render pass /must/ be equal to the @subpass@ member of+--     the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02686# Every input attachment+--     used by the current subpass /must/ be bound to the pipeline via a+--     descriptor set+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04584# Image subresources used+--     as attachments in the current render pass /must/ not be accessed in+--     any way other than as an attachment by this command, except for+--     cases involving read-only access to depth\/stencil attachments as+--     described in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+--     chapter+--+-- -   #VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688# If+--     the draw is recorded in a render pass instance with multiview+--     enabled, the maximum instance index /must/ be less than or equal to+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689# If the+--     bound graphics pipeline was created with+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+--     has a depth\/stencil attachment, then that attachment /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If the bound+--     graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04139# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04140# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+--     structure chained from @VkPipelineVieportCreateInfo@, then the bound+--     graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ be @1@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization+--     is not disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     neither the @VK_AMD_mixed_attachment_samples@ nor the+--     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06173# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06174# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06175# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06176# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06177# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewMask-06178# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06184# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185# If the+--     currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the corresponding element of the+--     @pColorAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188# If the+--     currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+--+-- -   #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings+--     accessed via vertex input variables declared in the vertex shader+--     entry point’s interface /must/ have either valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04008# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all vertex input bindings accessed via+--     vertex input variables declared in the vertex shader entry point’s+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer+--     binding, any attribute data fetched /must/ be entirely contained+--     within the corresponding vertex buffer binding, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @primitiveTopology@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+--     /must/ be of the same+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+--     as the pipeline+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+--     state+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics+--     pipeline was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic states enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics+--     pipeline /must/ not have been created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@+--     /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-02718# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/+--     be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is+--     greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be+--     greater than or equal to+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')+--+-- -   #VUID-vkCmdDrawIndexedIndirect-firstInstance-00530# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, all the @firstInstance@ members of the+--     'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures+--     accessed by this command /must/ be @0@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is+--     equal to @1@, (@offset@ ++--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))+--     /must/ be less than or equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is+--     greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))+--     /must/ be less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only+--     be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commonparent# Both of @buffer@, and+--     @commandBuffer@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawIndexedIndirect :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command is+                          -- recorded.+                          CommandBuffer+                       -> -- | @buffer@ is the buffer containing draw parameters.+                          Buffer+                       -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+                          ("offset" ::: DeviceSize)+                       -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.+                          ("drawCount" ::: Word32)+                       -> -- | @stride@ is the byte stride between successive sets of draw parameters.+                          ("stride" ::: Word32)+                       -> io ()+cmdDrawIndexedIndirect commandBuffer buffer offset drawCount stride = liftIO $ do+  let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing+  let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr+  traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDispatch+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDispatch - Dispatch compute work items+--+-- = Description+--+-- When the command is executed, a global workgroup consisting of+-- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is+-- assembled.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDispatch-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatch-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatch-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDispatch-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDispatch-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatch-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a+--     reduction mode of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image'+--     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+--     containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-06423# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being written as a storage image+--     or storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-06424# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being read as a storage image or+--     storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-None-02697# For each set /n/ that is statically+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point used by this command, a descriptor set /must/ have been+--     bound to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     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 if they+--     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatch-None-02700# A valid pipeline /must/ be bound to+--     the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDispatch-None-02859# There /must/ not have been any calls+--     to dynamic state setting commands for any state not specified as+--     dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command, since that pipeline was+--     bound+--+-- -   #VUID-vkCmdDispatch-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDispatch-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDispatch-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDispatch-None-02705# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a uniform buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDispatch-None-02706# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a storage buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDispatch-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDispatch-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDispatch-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatch-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatch-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatch-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource written to by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be an unprotected resource+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, pipeline stages other than the framebuffer-space+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command /must/ not+--     write to any resource+--+-- -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages+--     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point used by this command uses the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+--     capability, then @commandBuffer@ /must/ not be a protected command+--     buffer+--+-- -   #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]+--+-- -   #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]+--+-- -   #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdDispatch-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Compute                                                                                                               |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDispatch :: forall io+             . (MonadIO io)+            => -- | @commandBuffer@ is the command buffer into which the command will be+               -- recorded.+               CommandBuffer+            -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X+               -- dimension.+               ("groupCountX" ::: Word32)+            -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y+               -- dimension.+               ("groupCountY" ::: Word32)+            -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z+               -- dimension.+               ("groupCountZ" ::: Word32)+            -> io ()+cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do+  let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDispatchPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing+  let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr+  traceAroundEvent "vkCmdDispatch" (vkCmdDispatch' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDispatchIndirect+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()++-- | vkCmdDispatchIndirect - Dispatch compute work items with indirect+-- parameters+--+-- = Description+--+-- 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' except that the+-- parameters are read by the device from a buffer during execution. The+-- parameters of the dispatch are encoded in a+-- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand' structure taken from+-- @buffer@ starting at @offset@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDispatchIndirect-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result+--     of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a+--     reduction mode of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatchIndirect-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-06423# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being written as a storage image+--     or storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-06424# Any+--     'Vulkan.Core10.Handles.ImageView' or+--     'Vulkan.Core10.Handles.BufferView' being read as a storage image or+--     storage texel buffer where the image format field of the+--     @OpTypeImage@ is @Unknown@ /must/ have image format features that+--     support+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-02697# For each set /n/ that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a descriptor set /must/+--     have been bound to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to 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-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     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+--     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+--+-- -   #VUID-vkCmdDispatchIndirect-None-02700# A valid pipeline /must/ be+--     bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDispatchIndirect-None-02859# There /must/ not have been+--     any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDispatchIndirect-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDispatchIndirect-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDispatchIndirect-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDispatchIndirect-None-02705# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a uniform buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDispatchIndirect-None-02706# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>+--     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a storage buffer, it /must/ not access values outside of+--     the range of the buffer as specified in the descriptor set bound to+--     the same pipeline bind point+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDispatchIndirect-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been+--     created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@+--     /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and+--     the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'+--     /must/ be less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdDispatchIndirect-commonparent# Both of @buffer@, and+--     @commandBuffer@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Compute                                                                                                               |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDispatchIndirect :: forall io+                     . (MonadIO io)+                    => -- | @commandBuffer@ is the command buffer into which the command will be+                       -- recorded.+                       CommandBuffer+                    -> -- | @buffer@ is the buffer containing dispatch parameters.+                       Buffer+                    -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+                       ("offset" ::: DeviceSize)+                    -> io ()+cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do+  let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing+  let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr+  traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyBuffer+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()++-- | vkCmdCopyBuffer - Copy data between buffer regions+--+-- = Description+--+-- Each region in @pRegions@ is copied from the source buffer to the same+-- region of the destination buffer. @srcBuffer@ and @dstBuffer@ /can/ be+-- the same buffer or alias the same memory, but the resulting values are+-- undefined if the copy regions overlap in memory.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01822# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01823# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- -   #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of+--     each element of @pRegions@ /must/ be less than the size of+--     @srcBuffer@+--+-- -   #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of+--     each element of @pRegions@ /must/ be less than the size of+--     @dstBuffer@+--+-- -   #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element+--     of @pRegions@ /must/ be less than or equal to the size of+--     @srcBuffer@ minus @srcOffset@+--+-- -   #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element+--     of @pRegions@ /must/ be less than or equal to the size of+--     @dstBuffer@ minus @dstOffset@+--+-- -   #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source+--     regions, and the union of the destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'BufferCopy'+--     structures+--+-- -   #VUID-vkCmdCopyBuffer-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-vkCmdCopyBuffer-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/+--     be greater than @0@+--+-- -   #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,+--     @dstBuffer@, and @srcBuffer@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdCopyBuffer :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @srcBuffer@ is the source buffer.+                 ("srcBuffer" ::: Buffer)+              -> -- | @dstBuffer@ is the destination buffer.+                 ("dstBuffer" ::: Buffer)+              -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures+                 -- specifying the regions to copy.+                 ("regions" ::: Vector BufferCopy)+              -> io ()+cmdCopyBuffer commandBuffer srcBuffer dstBuffer regions = liftIO . evalContT $ do+  let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing+  let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr+  pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)+  lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyImage+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()++-- | vkCmdCopyImage - Copy data between images+--+-- = Description+--+-- Each region in @pRegions@ is copied from the source image to the same+-- region of the destination image. @srcImage@ and @dstImage@ /can/ be the+-- same image or alias the same memory.+--+-- The formats of @srcImage@ and @dstImage@ /must/ be compatible. Formats+-- are compatible if they share the same class, as shown in the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+-- table. Depth\/stencil formats /must/ match exactly.+--+-- If either @srcImage@ or @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- regions of each plane to be copied /must/ be specified separately using+-- the @srcSubresource@ and @dstSubresource@ members of the 'ImageCopy'+-- structure. In this case, the @aspectMask@ of the @srcSubresource@ or+-- @dstSubresource@ that refers to the multi-planar image /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For+-- the purposes of 'cmdCopyImage', each plane of a multi-planar image is+-- treated as having the format listed in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- for the plane identified by the @aspectMask@ of the corresponding+-- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'+-- and to coordinates used in the copy, which correspond to texels in the+-- /plane/ rather than how these texels map to coordinates in the image as+-- a whole.+--+-- Note+--+-- For example, the+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' plane+-- of a 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_420_UNORM' image+-- is compatible with an image of format+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM' and (less usefully) with+-- the 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- plane of an image of format+-- 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16',+-- as each texel is 2 bytes in size.+--+-- 'cmdCopyImage' allows copying between /size-compatible/ compressed and+-- uncompressed internal formats. Formats are size-compatible if the texel+-- block size of the uncompressed format is equal to the texel block size+-- of the compressed format. Such a copy does not perform on-the-fly+-- compression or decompression. When copying from an uncompressed format+-- to a compressed format, each texel of uncompressed data of the source+-- image is copied as a raw value to the corresponding compressed texel+-- block of the destination image. When copying from a compressed format to+-- an uncompressed format, each compressed texel block of the source image+-- is copied as a raw value to the corresponding texel of uncompressed data+-- in the destination image. Thus, for example, it is legal to copy between+-- a 128-bit uncompressed format and a compressed format which has a+-- 128-bit sized compressed texel block representing 4×4 texels (using 8+-- bits per texel), or between a 64-bit uncompressed format and a+-- compressed format which has a 64-bit sized compressed texel block+-- representing 4×4 texels (using 4 bits per texel).+--+-- When copying between compressed and uncompressed formats the @extent@+-- members represent the texel dimensions of the source image and not the+-- destination. When copying from a compressed image to an uncompressed+-- image the image texel dimensions written to the uncompressed image will+-- be source extent divided by the compressed texel block dimensions. When+-- copying from an uncompressed image to a compressed image the image texel+-- dimensions written to the compressed image will be the source extent+-- multiplied by the compressed texel block dimensions. In both cases the+-- number of bytes read and the number of bytes written will be identical.+--+-- Copying to or from block-compressed images is typically done in+-- multiples of the compressed texel block size. For this reason the+-- @extent@ /must/ be a multiple of the compressed texel block dimension.+-- There is one exception to this rule which is /required/ to handle+-- compressed images created with dimensions that are not a multiple of the+-- compressed texel block dimensions: if the @srcImage@ is compressed,+-- then:+--+-- -   If @extent.width@ is not a multiple of the compressed texel block+--     width, then (@extent.width@ + @srcOffset.x@) /must/ equal the image+--     subresource width.+--+-- -   If @extent.height@ is not a multiple of the compressed texel block+--     height, then (@extent.height@ + @srcOffset.y@) /must/ equal the+--     image subresource height.+--+-- -   If @extent.depth@ is not a multiple of the compressed texel block+--     depth, then (@extent.depth@ + @srcOffset.z@) /must/ equal the image+--     subresource depth.+--+-- Similarly, if the @dstImage@ is compressed, then:+--+-- -   If @extent.width@ is not a multiple of the compressed texel block+--     width, then (@extent.width@ + @dstOffset.x@) /must/ equal the image+--     subresource width.+--+-- -   If @extent.height@ is not a multiple of the compressed texel block+--     height, then (@extent.height@ + @dstOffset.y@) /must/ equal the+--     image subresource height.+--+-- -   If @extent.depth@ is not a multiple of the compressed texel block+--     depth, then (@extent.depth@ + @dstOffset.z@) /must/ equal the image+--     subresource depth.+--+-- This allows the last compressed texel block of the image in each+-- non-multiple dimension to be included as a source or destination of the+-- copy.+--+-- “@_422@” image formats that are not+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- are treated as having a 2×1 compressed texel block for the purposes of+-- these rules.+--+-- 'cmdCopyImage' /can/ be used to copy image data between multisample+-- images, but both images /must/ have the same number of samples.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-01825# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-01826# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- -   #VUID-vkCmdCopyImage-pRegions-00124# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdCopyImage-srcImage-01995# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- -   #VUID-vkCmdCopyImage-srcImage-00126# @srcImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyImage-srcImage-01546# If @srcImage@ is non-sparse+--     then the image or /disjoint/ plane to be copied /must/ be bound+--     completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/+--     specify the layout of the image subresources of @srcImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-vkCmdCopyImage-dstImage-01996# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdCopyImage-dstImage-00131# @dstImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyImage-dstImage-01547# If @dstImage@ is non-sparse+--     then the image or /disjoint/ plane that is the destination of the+--     copy /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/+--     specify the layout of the image subresources of @dstImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-vkCmdCopyImage-srcImage-01548# If the+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ /must/ be compatible, as defined+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>+--+-- -   #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,+--     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane+--     /must/ be compatible according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>+--     for the plane being copied+--+-- -   #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@+--     and @dstImage@ /must/ match+--+-- -   #VUID-vkCmdCopyImage-srcSubresource-01696# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-vkCmdCopyImage-dstSubresource-01697# The+--     @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-vkCmdCopyImage-srcSubresource-01698# The+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-vkCmdCopyImage-dstSubresource-01699# The+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@+--     members of each element of @pRegions@ /must/ respect the image+--     transfer granularity requirements of @commandBuffer@’s command+--     pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@+--     members of each element of @pRegions@ /must/ respect the image+--     transfer granularity requirements of @commandBuffer@’s command+--     pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-vkCmdCopyImage-dstImage-02542# @dstImage@ and @srcImage@+--     /must/ not have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor+--     @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@ and+--     @dstSubresource.aspectMask@ /must/ match+--+-- -   #VUID-vkCmdCopyImage-srcImage-01552# If @srcImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- -   #VUID-vkCmdCopyImage-srcImage-01553# If @srcImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-vkCmdCopyImage-dstImage-01554# If @dstImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+--     then for each element of @pRegions@, @dstSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- -   #VUID-vkCmdCopyImage-dstImage-01555# If @dstImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+--     then for each element of @pRegions@, @dstSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     and the @dstImage@ does not have a multi-planar image format, then+--     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     and the @srcImage@ does not have a multi-planar image format, then+--     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+--     @srcSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+--     @dstSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+--     present in @srcImage@+--+-- -   #VUID-vkCmdCopyImage-aspectMask-00143# For each element of+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-vkCmdCopyImage-srcOffset-00144# For each element of+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcOffset-00145# For each element of+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-srcOffset-00147# For each element of+--     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@+--     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then+--     for each element of @pRegions@, @extent.depth@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @extent.depth@ /must/ equal+--     @srcSubresource.layerCount@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @extent.depth@ /must/ equal+--     @dstSubresource.layerCount@+--+-- -   #VUID-vkCmdCopyImage-dstOffset-00150# For each element of+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstOffset-00151# For each element of+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-dstOffset-00153# For each element of+--     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01727# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, all members of @srcOffset@+--     /must/ be a multiple of the corresponding dimensions of the+--     compressed texel block+--+-- -   #VUID-vkCmdCopyImage-srcImage-01728# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.width@ /must/ be a+--     multiple of the compressed texel block width or (@extent.width@ ++--     @srcOffset.x@) /must/ equal the width of the specified+--     @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01729# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.height@ /must/ be a+--     multiple of the compressed texel block height or (@extent.height@ ++--     @srcOffset.y@) /must/ equal the height of the specified+--     @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01730# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@extent.depth@ ++--     @srcOffset.z@) /must/ equal the depth of the specified+--     @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01731# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, all members of @dstOffset@+--     /must/ be a multiple of the corresponding dimensions of the+--     compressed texel block+--+-- -   #VUID-vkCmdCopyImage-dstImage-01732# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.width@ /must/ be a+--     multiple of the compressed texel block width or (@extent.width@ ++--     @dstOffset.x@) /must/ equal the width of the specified+--     @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01733# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.height@ /must/ be a+--     multiple of the compressed texel block height or (@extent.height@ ++--     @dstOffset.y@) /must/ equal the height of the specified+--     @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01734# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@extent.depth@ ++--     @dstOffset.z@) /must/ equal the depth of the specified+--     @dstSubresource@ of @dstImage@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'ImageCopy'+--     structures+--+-- -   #VUID-vkCmdCopyImage-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-vkCmdCopyImage-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/+--     be greater than @0@+--+-- -   #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,+--     @dstImage@, and @srcImage@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdCopyImage :: forall io+              . (MonadIO io)+             => -- | @commandBuffer@ is the command buffer into which the command will be+                -- recorded.+                CommandBuffer+             -> -- | @srcImage@ is the source image.+                ("srcImage" ::: Image)+             -> -- | @srcImageLayout@ is the current layout of the source image subresource.+                ("srcImageLayout" ::: ImageLayout)+             -> -- | @dstImage@ is the destination image.+                ("dstImage" ::: Image)+             -> -- | @dstImageLayout@ is the current layout of the destination image+                -- subresource.+                ("dstImageLayout" ::: ImageLayout)+             -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying+                -- the regions to copy.+                ("regions" ::: Vector ImageCopy)+             -> io ()+cmdCopyImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do+  let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing+  let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr+  pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)+  lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBlitImage+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()++-- | vkCmdBlitImage - Copy regions of an image, potentially performing format+-- conversion,+--+-- = Description+--+-- 'cmdBlitImage' /must/ not be used for multisampled source or destination+-- images. Use 'cmdResolveImage' for this purpose.+--+-- As the sizes of the source and destination extents /can/ differ in any+-- dimension, texels in the source extent are scaled and filtered to the+-- destination extent. Scaling occurs via the following operations:+--+-- -   For each destination texel, the integer coordinate of that texel is+--     converted to an unnormalized texture coordinate, using the effective+--     inverse of the equations described in+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:+--+--     -   ubase = i + ½+--+--     -   vbase = j + ½+--+--     -   wbase = k + ½+--+-- -   These base coordinates are then offset by the first destination+--     offset:+--+--     -   uoffset = ubase - xdst0+--+--     -   voffset = vbase - ydst0+--+--     -   woffset = wbase - zdst0+--+--     -   aoffset = a - @baseArrayCount@dst+--+-- -   The scale is determined from the source and destination regions, and+--     applied to the offset coordinates:+--+--     -   scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)+--+--     -   scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)+--+--     -   scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)+--+--     -   uscaled = uoffset × scaleu+--+--     -   vscaled = voffset × scalev+--+--     -   wscaled = woffset × scalew+--+-- -   Finally the source offset is added to the scaled coordinates, to+--     determine the final unnormalized coordinates used to sample from+--     @srcImage@:+--+--     -   u = uscaled + xsrc0+--+--     -   v = vscaled + ysrc0+--+--     -   w = wscaled + zsrc0+--+--     -   q = @mipLevel@+--+--     -   a = aoffset + @baseArrayCount@src+--+-- These coordinates are used to sample from the source image, as described+-- in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations chapter>,+-- with the filter mode equal to that of @filter@, a mipmap mode of+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and+-- an address mode of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.+-- Implementations /must/ clamp at the edge of the source image, and /may/+-- additionally clamp to the edge of the source region.+--+-- Note+--+-- Due to allowable rounding errors in the generation of the source texture+-- coordinates, it is not always possible to guarantee exactly which source+-- texels will be sampled for a given blit. As rounding errors are+-- implementation-dependent, the exact results of a blitting operation are+-- also implementation-dependent.+--+-- Blits are done layer by layer starting with the @baseArrayLayer@ member+-- of @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are blitted to the destination image.+--+-- When blitting 3D textures, slices in the destination region bounded by+-- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the+-- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the+-- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then+-- the value sampled from the source image is taken by doing linear+-- filtering using the interpolated __z__ coordinate represented by __w__+-- in the previous equations. If the @filter@ parameter is+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from+-- the source image is taken from the single nearest slice, with an+-- implementation-dependent arithmetic rounding mode.+--+-- The following filtering and conversion rules apply:+--+-- -   Integer formats /can/ only be converted to other integer formats+--     with the same signedness.+--+-- -   No format conversion is supported between depth\/stencil images. The+--     formats /must/ match.+--+-- -   Format conversions on unorm, snorm, unscaled and packed float+--     formats of the copied aspect of the image are performed by first+--     converting the pixels to float values.+--+-- -   For sRGB source formats, nonlinear RGB values are converted to+--     linear representation prior to filtering.+--+-- -   After filtering, the float values are first clamped and then cast to+--     the destination image format. In case of sRGB destination format,+--     linear RGB values are converted to nonlinear representation before+--     writing the pixel to the image.+--+-- Signed and unsigned integers are converted by first clamping to the+-- representable range of the destination format, then casting the value.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBlitImage-commandBuffer-01834# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdBlitImage-commandBuffer-01835# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- -   #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by+--     each element of @pRegions@ /must/ be a region that is contained+--     within @srcImage@+--+-- -   #VUID-vkCmdBlitImage-pRegions-00216# The destination region+--     specified by each element of @pRegions@ /must/ be a region that is+--     contained within @dstImage@+--+-- -   #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory with any texel that /may/ be sampled during the blit+--     operation+--+-- -   #VUID-vkCmdBlitImage-srcImage-01999# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+--+-- -   #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>+--+-- -   #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/+--     specify the layout of the image subresources of @srcImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdBlitImage-dstImage-02000# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'+--+-- -   #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>+--+-- -   #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/+--     specify the layout of the image subresources of @dstImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or+--     @dstImage@ was created with a signed integer+--     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+--     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'+--+-- -   #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or+--     @dstImage@ was created with an unsigned integer+--     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+--     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'+--+-- -   #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or+--     @dstImage@ was created with a depth\/stencil format, the other+--     /must/ have exactly the same format+--+-- -   #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with+--     a depth\/stencil format, @filter@ /must/ be+--     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'+--+-- -   #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been+--     created with a @samples@ value of+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been+--     created with a @samples@ value of+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdBlitImage-filter-02001# If @filter@ is+--     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdBlitImage-filter-02002# If @filter@ is+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@+--     /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- -   #VUID-vkCmdBlitImage-srcSubresource-01705# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-vkCmdBlitImage-dstSubresource-01706# The+--     @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-vkCmdBlitImage-srcSubresource-01707# The+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-vkCmdBlitImage-dstSubresource-01708# The+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@+--     /must/ not have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or+--     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',+--     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@+--     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and+--     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/+--     each be @1@+--+-- -   #VUID-vkCmdBlitImage-aspectMask-00241# For each element of+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+--     present in @srcImage@+--+-- -   #VUID-vkCmdBlitImage-aspectMask-00242# For each element of+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-vkCmdBlitImage-srcOffset-00243# For each element of+--     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be+--     greater than or equal to @0@ and less than or equal to the width of+--     the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdBlitImage-srcOffset-00244# For each element of+--     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be+--     greater than or equal to @0@ and less than or equal to the height of+--     the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y+--     /must/ be @1@+--+-- -   #VUID-vkCmdBlitImage-srcOffset-00246# For each element of+--     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be+--     greater than or equal to @0@ and less than or equal to the depth of+--     the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z+--     /must/ be @1@+--+-- -   #VUID-vkCmdBlitImage-dstOffset-00248# For each element of+--     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be+--     greater than or equal to @0@ and less than or equal to the width of+--     the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdBlitImage-dstOffset-00249# For each element of+--     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be+--     greater than or equal to @0@ and less than or equal to the height of+--     the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y+--     /must/ be @1@+--+-- -   #VUID-vkCmdBlitImage-dstOffset-00251# For each element of+--     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be+--     greater than or equal to @0@ and less than or equal to the depth of+--     the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z+--     /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'ImageBlit'+--     structures+--+-- -   #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid+--     'Vulkan.Core10.Enums.Filter.Filter' value+--+-- -   #VUID-vkCmdBlitImage-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-vkCmdBlitImage-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/+--     be greater than @0@+--+-- -   #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,+--     @dstImage@, and @srcImage@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',+-- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdBlitImage :: forall io+              . (MonadIO io)+             => -- | @commandBuffer@ is the command buffer into which the command will be+                -- recorded.+                CommandBuffer+             -> -- | @srcImage@ is the source image.+                ("srcImage" ::: Image)+             -> -- | @srcImageLayout@ is the layout of the source image subresources for the+                -- blit.+                ("srcImageLayout" ::: ImageLayout)+             -> -- | @dstImage@ is the destination image.+                ("dstImage" ::: Image)+             -> -- | @dstImageLayout@ is the layout of the destination image subresources for+                -- the blit.+                ("dstImageLayout" ::: ImageLayout)+             -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying+                -- the regions to blit.+                ("regions" ::: Vector ImageBlit)+             -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter+                -- to apply if the blits require scaling.+                Filter+             -> io ()+cmdBlitImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions filter' = liftIO . evalContT $ do+  let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing+  let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr+  pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)+  lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions) (filter'))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyBufferToImage+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()++-- | vkCmdCopyBufferToImage - Copy data from a buffer into an image+--+-- = Description+--+-- Each region in @pRegions@ is copied from the specified region of the+-- source buffer to the specified region of the destination image.+--+-- If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- regions of each plane to be a target of a copy /must/ be specified+-- separately using the @pRegions@ member of the 'BufferImageCopy'+-- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For+-- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar+-- image is treated as having the format listed in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- for the plane identified by the @aspectMask@ of the corresponding+-- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'+-- and to coordinates used in the copy, which correspond to texels in the+-- /plane/ rather than how these texels map to coordinates in the image as+-- a whole.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@+--     is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-06217# The image region+--     specified by each element of @pRegions@ /must/ be contained within+--     the specified @imageSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be+--     large enough to contain all buffer locations that are accessed+--     according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-01997# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have+--     been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00178# If @dstImage@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00179# @dstImage@ /must/ have+--     a sample count equal to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@+--     /must/ specify the layout of the image subresources of @dstImage@+--     specified in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-01701# The+--     @imageSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-01702# The+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-01793# The @imageOffset@+--     and @imageExtent@ members of each element of @pRegions@ /must/+--     respect the image transfer granularity requirements of+--     @commandBuffer@’s command pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-02543# @dstImage@ /must/ not+--     have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04477# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each+--     element of @pRegions@, the @aspectMask@ member of @imageSubresource@+--     /must/ not be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-06218# For each element of+--     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ ++--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the width of the specified @imageSubresource@+--     of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-06219# For each element of+--     @pRegions@, @imageOffset.y@ and (@imageExtent.height@ ++--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the height of the specified @imageSubresource@+--     of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does+--     not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01559# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-vkCmdCopyBufferToImage-srcImage-00199# If @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and+--     @imageExtent.height@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of+--     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ ++--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the depth of the specified @imageSubresource@+--     of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-srcImage-00201# If @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+--     /must/ be @1@+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-00203# If @dstImage@ is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ /must/ be a+--     multiple of the compressed texel block width+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# If @dstImage@+--     is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferImageHeight@ /must/ be a+--     multiple of the compressed texel block height+--+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-00205# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, all members of @imageOffset@ /must/+--     be a multiple of the corresponding dimensions of the compressed+--     texel block+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-00206# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+--     of the compressed texel block size in bytes+--+-- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00207# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.width@ /must/ be a+--     multiple of the compressed texel block width or (@imageExtent.width@+--     + @imageOffset.x@) /must/ equal the width of the specified+--     @imageSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00208# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.height@ /must/ be a+--     multiple of the compressed texel block height or+--     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+--     the specified @imageSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00209# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@imageExtent.depth@+--     + @imageOffset.z@) /must/ equal the depth of the specified+--     @imageSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-aspectMask-00211# For each element of+--     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-aspectMask-01560# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @imageSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     (with+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     valid only for image formats with three planes)+--+-- -   #VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213# If @dstImage@ is+--     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each+--     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be+--     @0@ and @imageSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-04725# If @dstImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-04726# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a+--     depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/+--     be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#+--     @dstImageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/+--     be a valid pointer to an array of @regionCount@ valid+--     'BufferImageCopy' structures+--+-- -   #VUID-vkCmdCopyBufferToImage-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-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@+--     /must/ be greater than @0@+--+-- -   #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,+--     @dstImage@, and @srcBuffer@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdCopyBufferToImage :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @srcBuffer@ is the source buffer.+                        ("srcBuffer" ::: Buffer)+                     -> -- | @dstImage@ is the destination image.+                        ("dstImage" ::: Image)+                     -> -- | @dstImageLayout@ is the layout of the destination image subresources for+                        -- the copy.+                        ("dstImageLayout" ::: ImageLayout)+                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures+                        -- specifying the regions to copy.+                        ("regions" ::: Vector BufferImageCopy)+                     -> io ()+cmdCopyBufferToImage commandBuffer srcBuffer dstImage dstImageLayout regions = liftIO . evalContT $ do+  let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing+  let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr+  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)+  lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyImageToBuffer+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()++-- | vkCmdCopyImageToBuffer - Copy image data into a buffer+--+-- = Description+--+-- Each region in @pRegions@ is copied from the specified region of the+-- source image to the specified region of the destination buffer.+--+-- If @srcImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- regions of each plane to be a source of a copy /must/ be specified+-- separately using the @pRegions@ member of the 'BufferImageCopy'+-- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For+-- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar+-- image is treated as having the format listed in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- for the plane identified by the @aspectMask@ of the corresponding+-- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'+-- and to coordinates used in the copy, which correspond to texels in the+-- /plane/ rather than how these texels map to coordinates in the image as+-- a whole.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@+--     is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-06220# The image region+--     specified by each element of @pRegions@ /must/ be contained within+--     the specified @imageSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be+--     large enough to contain all buffer locations that are accessed+--     according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have+--     been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00187# If @srcImage@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00188# @srcImage@ /must/ have+--     a sample count equal to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@+--     /must/ specify the layout of the image subresources of @srcImage@+--     specified in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-01703# The+--     @imageSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-01704# The+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-01794# The @imageOffset@+--     and @imageExtent@ members of each element of @pRegions@ /must/+--     respect the image transfer granularity requirements of+--     @commandBuffer@’s command pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-02544# @srcImage@ /must/ not+--     have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-06221# For each element of+--     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ ++--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the width of the specified @imageSubresource@+--     of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-06222# For each element of+--     @pRegions@, @imageOffset.y@ and (imageExtent.height ++--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the height of the specified @imageSubresource@+--     of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does+--     not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01559# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00199# If @srcImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and+--     @imageExtent.height@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of+--     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ ++--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the depth of the specified @imageSubresource@+--     of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00201# If @srcImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+--     /must/ be @1@+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203# If @srcImage@ is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ /must/ be a+--     multiple of the compressed texel block width+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# If @srcImage@+--     is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferImageHeight@ /must/ be a+--     multiple of the compressed texel block height+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00205# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, all members of @imageOffset@ /must/+--     be a multiple of the corresponding dimensions of the compressed+--     texel block+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-00206# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+--     of the compressed texel block size in bytes+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.width@ /must/ be a+--     multiple of the compressed texel block width or (@imageExtent.width@+--     + @imageOffset.x@) /must/ equal the width of the specified+--     @imageSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.height@ /must/ be a+--     multiple of the compressed texel block height or+--     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+--     the specified @imageSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@imageExtent.depth@+--     + @imageOffset.z@) /must/ equal the depth of the specified+--     @imageSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-aspectMask-00211# For each element of+--     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+--     present in @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-aspectMask-01560# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @imageSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     (with+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     valid only for image formats with three planes)+--+-- -   #VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213# If @srcImage@ is+--     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each+--     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be+--     @0@ and @imageSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-04725# If @srcImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of @srcImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-04726# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of @srcImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a+--     depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/+--     be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#+--     @srcImageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/+--     be a valid pointer to an array of @regionCount@ valid+--     'BufferImageCopy' structures+--+-- -   #VUID-vkCmdCopyImageToBuffer-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-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@+--     /must/ be greater than @0@+--+-- -   #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,+--     @dstBuffer@, and @srcImage@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdCopyImageToBuffer :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @srcImage@ is the source image.+                        ("srcImage" ::: Image)+                     -> -- | @srcImageLayout@ is the layout of the source image subresources for the+                        -- copy.+                        ("srcImageLayout" ::: ImageLayout)+                     -> -- | @dstBuffer@ is the destination buffer.+                        ("dstBuffer" ::: Buffer)+                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures+                        -- specifying the regions to copy.+                        ("regions" ::: Vector BufferImageCopy)+                     -> io ()+cmdCopyImageToBuffer commandBuffer srcImage srcImageLayout dstBuffer regions = liftIO . evalContT $ do+  let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing+  let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr+  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)+  lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdUpdateBuffer+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()++-- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory+--+-- = Description+--+-- @dataSize@ /must/ be less than or equal to 65536 bytes. For larger+-- updates, applications /can/ use buffer to buffer+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers copies>.+--+-- Note+--+-- Buffer updates performed with 'cmdUpdateBuffer' first copy the data into+-- command buffer memory when the command is recorded (which requires+-- additional storage and may incur an additional allocation), and then+-- copy the data from the command buffer into @dstBuffer@ when the command+-- is executed on a device.+--+-- The additional cost of this functionality compared to+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>+-- means it is only recommended for very small amounts of data, and is why+-- it is limited to only 65536 bytes.+--+-- Applications /can/ work around this by issuing multiple+-- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but+-- it is strongly recommended that they /should/ not.+--+-- The source data is copied from the user pointer to the command buffer+-- when the command is called.+--+-- 'cmdUpdateBuffer' is only allowed outside of a render pass. This command+-- is treated as “transfer” operation, for the purposes of synchronization+-- barriers. The+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- /must/ be specified in @usage@ of+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be+-- compatible with 'cmdUpdateBuffer'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less+--     than the size of @dstBuffer@+--+-- -   #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less+--     than or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- -   #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have+--     been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less+--     than or equal to @65536@+--+-- -   #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid+--     pointer to an array of @dataSize@ bytes+--+-- -   #VUID-vkCmdUpdateBuffer-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-vkCmdUpdateBuffer-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be+--     greater than @0@+--+-- -   #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and+--     @dstBuffer@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdUpdateBuffer :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command will be+                   -- recorded.+                   CommandBuffer+                -> -- | @dstBuffer@ is a handle to the buffer to be updated.+                   ("dstBuffer" ::: Buffer)+                -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and+                   -- /must/ be a multiple of 4.+                   ("dstOffset" ::: DeviceSize)+                -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of+                   -- 4.+                   ("dataSize" ::: DeviceSize)+                -> -- | @pData@ is a pointer to the source data for the buffer update, and+                   -- /must/ be at least @dataSize@ bytes in size.+                   ("data" ::: Ptr ())+                -> io ()+cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do+  let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdUpdateBufferPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing+  let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr+  traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (dataSize) (data'))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdFillBuffer+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()++-- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value+--+-- = Description+--+-- 'cmdFillBuffer' is treated as “transfer” operation for the purposes of+-- synchronization barriers. The+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- /must/ be specified in @usage@ of+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be+-- compatible with 'cmdFillBuffer'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less+--     than the size of @dstBuffer@+--+-- -   #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater+--     than @0@+--+-- -   #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than+--     or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- -   #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple+--     of @4@+--+-- -   #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdFillBuffer-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-vkCmdFillBuffer-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics or compute+--     operations+--+-- -   #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and+--     @dstBuffer@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdFillBuffer :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @dstBuffer@ is the buffer to be filled.+                 ("dstBuffer" ::: Buffer)+              -> -- | @dstOffset@ is the byte offset into the buffer at which to start+                 -- filling, and /must/ be a multiple of 4.+                 ("dstOffset" ::: DeviceSize)+              -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple+                 -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from+                 -- @offset@ to the end of the buffer. If+                 -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size+                 -- of the buffer is not a multiple of 4, then the nearest smaller multiple+                 -- is used.+                 DeviceSize+              -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill+                 -- @size@ bytes of data. The data word is written to memory according to+                 -- the host endianness.+                 ("data" ::: Word32)+              -> io ()+cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do+  let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdFillBufferPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing+  let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr+  traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (size) (data'))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdClearColorImage+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()++-- | vkCmdClearColorImage - Clear regions of a color image+--+-- = Description+--+-- Each specified range in @pRanges@ is cleared to the value specified by+-- @pColor@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdClearColorImage-image-01993# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @image@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any+--     of the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>+--+-- -   #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/+--     specify the layout of the image subresource ranges of @image@+--     specified in @pRanges@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-vkCmdClearColorImage-aspectMask-02498# The+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@+--     members of the elements of the @pRanges@ array /must/ each only+--     include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-vkCmdClearColorImage-baseMipLevel-01470# The+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-vkCmdClearColorImage-pRanges-01692# For each+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+--     @pRanges@, if the @levelCount@ member is not+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then+--     @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+--     created+--+-- -   #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @arrayLayers@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-vkCmdClearColorImage-pRanges-01693# For each+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+--     @pRanges@, if the @layerCount@ member is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then+--     @baseArrayLayer@ + @layerCount@ /must/ be less than the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @image@ was created+--+-- -   #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a+--     compressed or depth\/stencil format+--+-- -   #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid+--     pointer to a 'ClearColorValue' union+--+-- -   #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @image@ /must/ not be a protected image+--+-- -   #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@+--     is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a+--     valid pointer to an array of @rangeCount@ valid+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures+--+-- -   #VUID-vkCmdClearColorImage-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-vkCmdClearColorImage-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@+--     /must/ be greater than @0@+--+-- -   #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,+--     and @image@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'+cmdClearColorImage :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command will be+                      -- recorded.+                      CommandBuffer+                   -> -- | @image@ is the image to be cleared.+                      Image+                   -> -- | @imageLayout@ specifies the current layout of the image subresource+                      -- ranges to be cleared, and /must/ be+                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.+                      ImageLayout+                   -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the+                      -- values that the image subresource ranges will be cleared to (see+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>+                      -- below).+                      ClearColorValue+                   -> -- | @pRanges@ is a pointer to an array of+                      -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a+                      -- range of mipmap levels, array layers, and aspects to be cleared, as+                      -- described in+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.+                      ("ranges" ::: Vector ImageSubresourceRange)+                   -> io ()+cmdClearColorImage commandBuffer image imageLayout color ranges = liftIO . evalContT $ do+  let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing+  let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr+  pColor <- ContT $ withCStruct (color)+  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)+  lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pColor ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdClearDepthStencilImage+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()++-- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil+-- image+--+-- == Valid Usage+--+-- -   #VUID-vkCmdClearDepthStencilImage-image-01994# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @image@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@+--     member of any element of @pRanges@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     and @image@ was created with+--     <VkImageStencilUsageCreateInfo.html separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     /must/ have been included in the+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+--     used to create @image@+--+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@+--     member of any element of @pRanges@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     and @image@ was not created with+--     <VkImageStencilUsageCreateInfo.html separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     /must/ have been included in the+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+--     @image@+--+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@+--     member of any element of @pRanges@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     /must/ have been included in the+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+--     @image@+--+-- -   #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@+--     /must/ specify the layout of the image subresource ranges of @image@+--     specified in @pRanges@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@+--     /must/ be either of+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member+--     of each element of the @pRanges@ array /must/ not include bits other+--     than+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s+--     format does not have a stencil component, then the+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member+--     of each element of the @pRanges@ array /must/ not include the+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--     bit+--+-- -   #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s+--     format does not have a depth component, then the+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member+--     of each element of the @pRanges@ array /must/ not include the+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit+--+-- -   #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+--     @pRanges@, if the @levelCount@ member is not+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then+--     @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+--     created+--+-- -   #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @arrayLayers@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+--     @pRanges@, if the @layerCount@ member is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then+--     @baseArrayLayer@ + @layerCount@ /must/ be less than the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @image@ was created+--+-- -   #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a+--     depth\/stencil format+--+-- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @image@ /must/ not be a protected image+--+-- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If+--     @commandBuffer@ is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @image@ /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#+--     @imageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#+--     @pDepthStencil@ /must/ be a valid pointer to a valid+--     'ClearDepthStencilValue' structure+--+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@+--     /must/ be a valid pointer to an array of @rangeCount@ valid+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures+--+-- -   #VUID-vkCmdClearDepthStencilImage-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-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/+--     only be called outside of a render pass instance+--+-- -   #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#+--     @rangeCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdClearDepthStencilImage-commonparent# Both of+--     @commandBuffer@, and @image@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'+cmdClearDepthStencilImage :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @image@ is the image to be cleared.+                             Image+                          -> -- | @imageLayout@ specifies the current layout of the image subresource+                             -- ranges to be cleared, and /must/ be+                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.+                             ImageLayout+                          -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure+                             -- containing the values that the depth and stencil image subresource+                             -- ranges will be cleared to (see+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>+                             -- below).+                             ClearDepthStencilValue+                          -> -- | @pRanges@ is a pointer to an array of+                             -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a+                             -- range of mipmap levels, array layers, and aspects to be cleared, as+                             -- described in+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.+                             ("ranges" ::: Vector ImageSubresourceRange)+                          -> io ()+cmdClearDepthStencilImage commandBuffer image imageLayout depthStencil ranges = liftIO . evalContT $ do+  let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing+  let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr+  pDepthStencil <- ContT $ withCStruct (depthStencil)+  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)+  lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pDepthStencil ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdClearAttachments+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()++-- | vkCmdClearAttachments - Clear regions within bound framebuffer+-- attachments+--+-- = Description+--+-- If the render pass has a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,+-- clears follow the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>+-- as if each clear region was a primitive which generates fragments. The+-- clear color is applied to all pixels inside each fragment’s area+-- regardless if the pixels lie outside of the clear region. Clears /may/+-- have a different set of supported fragment areas than draws.+--+-- Unlike other+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,+-- 'cmdClearAttachments' executes as a drawing command, rather than a+-- transfer command, with writes performed by it executing in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.+-- Clears to color attachments are executed as color attachment writes, by+-- the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'+-- stage. Clears to depth\/stencil attachments are executed as+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil writes>+-- by the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'+-- and+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'+-- stages.+--+-- 'cmdClearAttachments' is not affected by the bound pipeline state.+--+-- Note+--+-- It is generally preferable to clear attachments by using the+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load+-- operation at the start of rendering, as it is more efficient on some+-- implementations.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdClearAttachments-aspectMask-02501# If the @aspectMask@+--     member of any element of @pAttachments@ contains+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',+--     then the @colorAttachment@ member of that element /must/ either+--     refer to a color attachment which is+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ be a valid+--     color attachment+--+-- -   #VUID-vkCmdClearAttachments-aspectMask-02502# If the @aspectMask@+--     member of any element of @pAttachments@ contains+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',+--     then the current subpass\' depth\/stencil attachment /must/ either+--     be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a+--     depth component+--+-- -   #VUID-vkCmdClearAttachments-aspectMask-02503# If the @aspectMask@+--     member of any element of @pAttachments@ contains+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     then the current subpass\' depth\/stencil attachment /must/ either+--     be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a+--     stencil component+--+-- -   #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each+--     element of @pRects@ /must/ have an @extent.width@ greater than @0@+--+-- -   #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each+--     element of @pRects@ /must/ have an @extent.height@ greater than @0@+--+-- -   #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region+--     specified by each element of @pRects@ /must/ be contained within the+--     render area of the current render pass instance+--+-- -   #VUID-vkCmdClearAttachments-pRects-00017# The layers specified by+--     each element of @pRects@ /must/ be contained within every attachment+--     that @pAttachments@ refers to+--+-- -   #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@+--     member of each element of @pRects@ /must/ not be @0@+--+-- -   #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, each attachment to be cleared /must/ not be a+--     protected image+--+-- -   #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@+--     is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, each attachment to be cleared /must/ not be an+--     unprotected image+--+-- -   #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass+--     instance this is recorded in uses multiview, then @baseArrayLayer@+--     /must/ be zero and @layerCount@ /must/ be one+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@+--     /must/ be a valid pointer to an array of @attachmentCount@ valid+--     'ClearAttachment' structures+--+-- -   #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a+--     valid pointer to an array of @rectCount@ 'ClearRect' structures+--+-- -   #VUID-vkCmdClearAttachments-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-vkCmdClearAttachments-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdClearAttachments-attachmentCount-arraylength#+--     @attachmentCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@+--     /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#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'+cmdClearAttachments :: forall io+                     . (MonadIO io)+                    => -- | @commandBuffer@ is the command buffer into which the command will be+                       -- recorded.+                       CommandBuffer+                    -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures+                       -- defining the attachments to clear and the clear values to use. If any+                       -- attachment index to be cleared is not backed by an image view, then the+                       -- clear has no effect.+                       ("attachments" ::: Vector ClearAttachment)+                    -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining+                       -- regions within each selected attachment to clear.+                       ("rects" ::: Vector ClearRect)+                    -> io ()+cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do+  let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing+  let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr+  pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)+  pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)+  lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32)) (pPAttachments) ((fromIntegral (Data.Vector.length $ (rects)) :: Word32)) (pPRects))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdResolveImage+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()++-- | vkCmdResolveImage - Resolve regions of an image+--+-- = Description+--+-- During the resolve the samples corresponding to each pixel location in+-- the source are converted to a single sample before being written to the+-- destination. If the source formats are floating-point or normalized+-- types, the sample values for each pixel are resolved in an+-- implementation-dependent manner. If the source formats are integer+-- types, a single sample’s value is selected for each pixel.+--+-- @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+-- in texels of the sub-regions of the source and destination image data.+-- @extent@ is the size in texels of the source image to resolve in+-- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a+-- region that is contained within its corresponding image.+--+-- Resolves are done layer by layer starting with @baseArrayLayer@ member+-- of @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are resolved to the destination image.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdResolveImage-commandBuffer-01837# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdResolveImage-commandBuffer-01838# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- -   #VUID-vkCmdResolveImage-pRegions-00255# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a+--     sample count equal to any valid sample count value other than+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a+--     sample count equal to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@+--     /must/ specify the layout of the image subresources of @srcImage@+--     specified in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@+--     /must/ specify the layout of the image subresources of @dstImage@+--     specified in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdResolveImage-dstImage-02003# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     feature is enabled and the image is created with+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- -   #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@+--     /must/ have been created with the same image format+--+-- -   #VUID-vkCmdResolveImage-srcSubresource-01709# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-vkCmdResolveImage-dstSubresource-01710# The+--     @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-vkCmdResolveImage-srcSubresource-01711# The+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-vkCmdResolveImage-dstSubresource-01712# The+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@+--     /must/ not have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-vkCmdResolveImage-srcImage-04446# If either @srcImage@ or+--     @dstImage@ are of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+--     @srcSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdResolveImage-srcImage-04447# If either @srcImage@ or+--     @dstImage@ are of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+--     @dstSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdResolveImage-srcOffset-00269# For each element of+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdResolveImage-srcOffset-00270# For each element of+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-vkCmdResolveImage-srcOffset-00272# For each element of+--     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-vkCmdResolveImage-dstOffset-00274# For each element of+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdResolveImage-dstOffset-00275# For each element of+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-vkCmdResolveImage-dstOffset-00277# For each element of+--     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'ImageResolve'+--     structures+--+-- -   #VUID-vkCmdResolveImage-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-vkCmdResolveImage-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdResolveImage-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@+--     /must/ be greater than @0@+--+-- -   #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,+--     @dstImage@, and @srcImage@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'+cmdResolveImage :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command will be+                   -- recorded.+                   CommandBuffer+                -> -- | @srcImage@ is the source image.+                   ("srcImage" ::: Image)+                -> -- | @srcImageLayout@ is the layout of the source image subresources for the+                   -- resolve.+                   ("srcImageLayout" ::: ImageLayout)+                -> -- | @dstImage@ is the destination image.+                   ("dstImage" ::: Image)+                -> -- | @dstImageLayout@ is the layout of the destination image subresources for+                   -- the resolve.+                   ("dstImageLayout" ::: ImageLayout)+                -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures+                   -- specifying the regions to resolve.+                   ("regions" ::: Vector ImageResolve)+                -> io ()+cmdResolveImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do+  let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing+  let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr+  pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)+  lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetEvent+  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()++-- | vkCmdSetEvent - Set an event object to signaled state+--+-- = Description+--+-- 'cmdSetEvent' behaves identically to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',+-- except that it does not define an access scope, and /must/ only be used+-- with 'cmdWaitEvents', not+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetEvent-stageMask-04090# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04091# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04092# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04093# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04094# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04095# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04097# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdSetEvent-stageMask-03937# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @stageMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in+--     @stageMask@ /must/ be supported by the capabilities of the queue+--     family specified by the @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- -   #VUID-vkCmdSetEvent-commandBuffer-01152# @commandBuffer@’s current+--     device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid+--     'Vulkan.Core10.Handles.Event' handle+--+-- -   #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a+--     valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/+--     be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetEvent-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and+--     @event@ /must/ have been created, allocated, or retrieved from the+--     same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdSetEvent :: forall io+             . (MonadIO io)+            => -- | @commandBuffer@ is the command buffer into which the command is+               -- recorded.+               CommandBuffer+            -> -- | @event@ is the event that will be signaled.+               Event+            -> -- | @stageMask@ specifies the+               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>+               -- used to determine the first+               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+               ("stageMask" ::: PipelineStageFlags)+            -> io ()+cmdSetEvent commandBuffer event stageMask = liftIO $ do+  let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetEventPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing+  let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr+  traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdResetEvent+  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()++-- | vkCmdResetEvent - Reset an event object to non-signaled state+--+-- = Description+--+-- 'cmdResetEvent' behaves identically to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdResetEvent-stageMask-04090# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04091# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04092# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04093# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04094# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04095# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04097# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdResetEvent-stageMask-03937# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @stageMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included+--     in @stageMask@ /must/ be supported by the capabilities of the queue+--     family specified by the @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not+--     include+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- -   #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution+--     dependency between 'cmdResetEvent' and the execution of any+--     'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter+--+-- -   #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution+--     dependency between 'cmdResetEvent' and the execution of any+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'+--     that includes @event@ in its @pEvents@ parameter+--+-- -   #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current+--     device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid+--     'Vulkan.Core10.Handles.Event' handle+--+-- -   #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a+--     valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdResetEvent-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and+--     @event@ /must/ have been created, allocated, or retrieved from the+--     same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdResetEvent :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command is+                 -- recorded.+                 CommandBuffer+              -> -- | @event@ is the event that will be unsignaled.+                 Event+              -> -- | @stageMask@ is a bitmask of+                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                 -- specifying the+                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>+                 -- used to determine when the @event@ is unsignaled.+                 ("stageMask" ::: PipelineStageFlags)+              -> io ()+cmdResetEvent commandBuffer event stageMask = liftIO $ do+  let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdResetEventPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing+  let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr+  traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWaitEventsUnsafe+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()++foreign import ccall+  "dynamic" mkVkCmdWaitEventsSafe+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()++-- | cmdWaitEvents with selectable safeness+cmdWaitEventsSafeOrUnsafe :: forall io+                           . (MonadIO io)+                          => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())+                          -> -- | @commandBuffer@ is the command buffer into which the command is+                             -- recorded.+                             CommandBuffer+                          -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.+                             ("events" ::: Vector Event)+                          -> -- | @srcStageMask@ is a bitmask of+                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                             -- specifying the+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.+                             ("srcStageMask" ::: PipelineStageFlags)+                          -> -- | @dstStageMask@ is a bitmask of+                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                             -- specifying the+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.+                             ("dstStageMask" ::: PipelineStageFlags)+                          -> -- | @pMemoryBarriers@ is a pointer to an array of+                             -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+                             ("memoryBarriers" ::: Vector MemoryBarrier)+                          -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+                             -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+                             ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+                          -> -- | @pImageMemoryBarriers@ is a pointer to an array of+                             -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+                             ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+                          -> io ()+cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer events srcStageMask dstStageMask memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do+  let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing+  let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr+  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)+  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)+  pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)+  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)+  lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (events)) :: Word32)) (pPEvents) (srcStageMask) (dstStageMask) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))+  pure $ ()++-- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory+--+-- = Description+--+-- 'cmdWaitEvents' is largely similar to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',+-- but /can/ only wait on signal operations defined by 'cmdSetEvent'. As+-- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines+-- the first access scope for each event signal operation in addition to+-- its own access scopes.+--+-- Note+--+-- Since 'cmdSetEvent' does not have any dependency information beyond a+-- stage mask, implementations do not have the same opportunity to perform+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>+-- in advance as they do with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2' and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.+--+-- When 'cmdWaitEvents' is submitted to a queue, it defines a memory+-- dependency between prior event signal operations on the same queue or+-- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to+-- wait on event signal operations occurring on other queues.+--+-- The first synchronization scope only includes event signal operations+-- that operate on members of @pEvents@, and the operations that+-- happened-before the event signal operations. Event signal operations+-- performed by 'cmdSetEvent' that occur earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- are included in the first synchronization scope, if the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in their @stageMask@ parameter is+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- than or equal to the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in @srcStageMask@. Event signal operations performed by+-- 'Vulkan.Core10.Event.setEvent' are only included in the first+-- synchronization scope if+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is+-- included in @srcStageMask@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- The second synchronization scope is limited to operations on the+-- pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. Within that, the first access scope only+-- includes the first access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the first access scope+-- includes no accesses.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. Within that, the second access scope only+-- includes the second access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the second access scope+-- includes no accesses.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04090# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04091# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04092# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04093# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04094# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04095# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04097# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-03937# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04090# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04091# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04092# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04093# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04094# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04095# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04097# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-03937# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @dstStageMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@+--     member of each element of @pMemoryBarriers@ /must/ only include+--     access flags that are supported by one or more of the pipeline+--     stages in @srcStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@+--     member of each element of @pMemoryBarriers@ /must/ only include+--     access flags that are supported by one or more of the pipeline+--     stages in @dstStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element+--     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @srcQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @srcAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @srcStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element+--     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @dstQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @dstAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @dstStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of+--     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @srcQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @srcAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @srcStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of+--     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @dstQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @dstAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @dstStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage+--     included in @srcStageMask@ /must/ be supported by the capabilities+--     of the queue family specified by the @queueFamilyIndex@ member of+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage+--     included in @dstStageMask@ /must/ be supported by the capabilities+--     of the queue family specified by the @queueFamilyIndex@ member of+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be+--     the bitwise OR of the @stageMask@ parameter used in previous calls+--     to 'cmdSetEvent' with any of the elements of @pEvents@ and+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--     if any of the elements of @pEvents@ was set using+--     'Vulkan.Core10.Event.setEvent'+--+-- -   #VUID-vkCmdWaitEvents-pEvents-01163# If @pEvents@ includes one or+--     more events that will be signaled by 'Vulkan.Core10.Event.setEvent'+--     after @commandBuffer@ has been submitted to a queue, then+--     'cmdWaitEvents' /must/ not be called inside a render pass instance+--+-- -   #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any+--     element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/+--     be equal+--+-- -   #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current+--     device mask /must/ include exactly one physical device+--+-- -   #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/+--     not have been signaled by+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid+--     pointer to an array of @eventCount@ valid+--     'Vulkan.Core10.Handles.Event' handles+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/+--     be a valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/+--     be a valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If+--     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+--     pointer to an array of @memoryBarrierCount@ valid+--     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures+--+-- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If+--     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+--     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures+--+-- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If+--     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+--     be a valid pointer to an array of @imageMemoryBarrierCount@ valid+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures+--+-- -   #VUID-vkCmdWaitEvents-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-vkCmdWaitEvents-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be+--     greater than @0@+--+-- -   #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the+--     elements of @pEvents@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdWaitEvents :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command is+                 -- recorded.+                 CommandBuffer+              -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.+                 ("events" ::: Vector Event)+              -> -- | @srcStageMask@ is a bitmask of+                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                 -- specifying the+                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.+                 ("srcStageMask" ::: PipelineStageFlags)+              -> -- | @dstStageMask@ is a bitmask of+                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                 -- specifying the+                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.+                 ("dstStageMask" ::: PipelineStageFlags)+              -> -- | @pMemoryBarriers@ is a pointer to an array of+                 -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+                 ("memoryBarriers" ::: Vector MemoryBarrier)+              -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+                 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+                 ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+              -> -- | @pImageMemoryBarriers@ is a pointer to an array of+                 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+                 ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+              -> io ()+cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe++-- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call+cmdWaitEventsSafe :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which the command is+                     -- recorded.+                     CommandBuffer+                  -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.+                     ("events" ::: Vector Event)+                  -> -- | @srcStageMask@ is a bitmask of+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                     -- specifying the+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.+                     ("srcStageMask" ::: PipelineStageFlags)+                  -> -- | @dstStageMask@ is a bitmask of+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                     -- specifying the+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.+                     ("dstStageMask" ::: PipelineStageFlags)+                  -> -- | @pMemoryBarriers@ is a pointer to an array of+                     -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+                     ("memoryBarriers" ::: Vector MemoryBarrier)+                  -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+                     -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+                     ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+                  -> -- | @pImageMemoryBarriers@ is a pointer to an array of+                     -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+                     ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+                  -> io ()+cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdPipelineBarrier+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()++-- | vkCmdPipelineBarrier - Insert a memory dependency+--+-- = Description+--+-- 'cmdPipelineBarrier' operates almost identically to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',+-- except that the scopes and barriers are defined as direct parameters+-- rather than being defined by an+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo'.+--+-- When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory+-- dependency between commands that were submitted before it, and those+-- submitted after it.+--+-- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the+-- first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the+-- first synchronization scope includes only commands that occur earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- within the same subpass. In either case, the first synchronization scope+-- is limited to operations on the pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@.+--+-- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the+-- second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the+-- second synchronization scope includes only commands that occur later in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- within the same subpass. In either case, the second synchronization+-- scope is limited to operations on the pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. Within that, the first access scope only+-- includes the first access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the first access scope+-- includes no accesses.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. Within that, the second access scope only+-- includes the second access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the second access scope+-- includes no accesses.+--+-- If @dependencyFlags@ includes+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then+-- any dependency between+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>+-- pipeline stages is+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>+-- - otherwise it is+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04097# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04097# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @dstStageMask@ /must/ not be @0@+--+-- -   #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@+--     member of each element of @pMemoryBarriers@ /must/ only include+--     access flags that are supported by one or more of the pipeline+--     stages in @srcStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@+--     member of each element of @pMemoryBarriers@ /must/ only include+--     access flags that are supported by one or more of the pipeline+--     stages in @dstStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any+--     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @srcQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @srcAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @srcStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any+--     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @dstQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @dstAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @dstStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any+--     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @srcQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @srcAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @srcStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any+--     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ members are equal, or if its+--     @dstQueueFamilyIndex@ is the queue family index that was used to+--     create the command pool that @commandBuffer@ was allocated from,+--     then its @dstAccessMask@ member /must/ only contain access flags+--     that are supported by one or more of the pipeline stages in+--     @dstStageMask@, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- -   #VUID-vkCmdPipelineBarrier-pDependencies-02285# If+--     'cmdPipelineBarrier' is called within a render pass instance, the+--     render pass /must/ have been created with at least one+--     'Vulkan.Core10.Pass.SubpassDependency' instance in+--     'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that+--     expresses a dependency from the current subpass to itself, with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+--     that are all supersets of the scopes defined in this command+--+-- -   #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If+--     'cmdPipelineBarrier' is called within a render pass instance, it+--     /must/ not include any buffer memory barriers+--+-- -   #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is+--     called within a render pass instance, the @image@ member of any+--     image memory barrier included in this command /must/ be an+--     attachment used in the current subpass both as an input attachment,+--     and as either a color or depth\/stencil attachment+--+-- -   #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'+--     is called within a render pass instance, the @oldLayout@ and+--     @newLayout@ members of any image memory barrier included in this+--     command /must/ be equal+--+-- -   #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If+--     'cmdPipelineBarrier' is called within a render pass instance, the+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image+--     memory barrier included in this command /must/ be equal+--+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If+--     'cmdPipelineBarrier' is called outside of a render pass instance,+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'+--     /must/ not be included in the dependency flags+--+-- -   #VUID-vkCmdPipelineBarrier-None-06191# If 'cmdPipelineBarrier' is+--     called within a render pass instance, the render pass /must/ not+--     have been started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage+--     included in @srcStageMask@ /must/ be supported by the capabilities+--     of the queue family specified by the @queueFamilyIndex@ member of+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage+--     included in @dstStageMask@ /must/ be supported by the capabilities+--     of the queue family specified by the @queueFamilyIndex@ member of+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#+--     @dependencyFlags@ /must/ be a valid combination of+--     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values+--+-- -   #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If+--     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+--     pointer to an array of @memoryBarrierCount@ valid+--     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures+--+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If+--     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+--     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures+--+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If+--     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+--     be a valid pointer to an array of @imageMemoryBarrierCount@ valid+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures+--+-- -   #VUID-vkCmdPipelineBarrier-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-vkCmdPipelineBarrier-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdPipelineBarrier :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command is+                      -- recorded.+                      CommandBuffer+                   -> -- | @srcStageMask@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                      -- specifying the+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.+                      ("srcStageMask" ::: PipelineStageFlags)+                   -> -- | @dstStageMask@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                      -- specifying the+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.+                      ("dstStageMask" ::: PipelineStageFlags)+                   -> -- | @dependencyFlags@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying+                      -- how execution and memory dependencies are formed.+                      DependencyFlags+                   -> -- | @pMemoryBarriers@ is a pointer to an array of+                      -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+                      ("memoryBarriers" ::: Vector MemoryBarrier)+                   -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+                      -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+                      ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+                   -> -- | @pImageMemoryBarriers@ is a pointer to an array of+                      -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+                      ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+                   -> io ()+cmdPipelineBarrier commandBuffer srcStageMask dstStageMask dependencyFlags memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do+  let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing+  let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr+  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)+  pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)+  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)+  lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier' (commandBufferHandle (commandBuffer)) (srcStageMask) (dstStageMask) (dependencyFlags) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBeginQuery+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()++-- | vkCmdBeginQuery - Begin a query+--+-- = Description+--+-- If the @queryType@ of the pool is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@+-- contains+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an+-- implementation /must/ return a result that matches the actual number of+-- samples passed. This is described in more detail in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.+--+-- Calling 'cmdBeginQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'+-- with the @index@ parameter set to zero.+--+-- After beginning a query, that query is considered /active/ within the+-- command buffer it was called in until that same query is ended. Queries+-- active in a primary command buffer when secondary command buffers are+-- executed are considered active for those secondary command buffers.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command+--     /must/ be unavailable+--+-- -   #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+--+-- -   #VUID-vkCmdBeginQuery-queryType-00800# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries>+--     feature is not enabled, or the @queryType@ used to create+--     @queryPool@ was not+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/+--     not contain+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'+--+-- -   #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and+--     any of the @pipelineStatistics@ indicate graphics operations, the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and+--     any of the @pipelineStatistics@ indicate compute operations, the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/+--     not be a protected command buffer+--+-- -   #VUID-vkCmdBeginQuery-query-00808# If called within a render pass+--     instance, the sum of @query@ and the number of bits set in the+--     current subpass’s view mask /must/ be less than or equal to the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been+--     created with a @queryType@ that differs from that of any queries+--     that are+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--     within @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'+--     then+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@+--     /must/ be supported+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>+--     /must/ have been held before+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on+--     @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',+--     the query begin /must/ be the first recorded command in+--     @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',+--     the begin command /must/ not be recorded within a render pass+--     instance+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     another query pool with a @queryType@+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has+--     been used within @commandBuffer@, its parent primary command buffer+--     or secondary command buffer recorded within the same parent primary+--     command buffer as @commandBuffer@, the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a+--     @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     this command /must/ not be recorded in a command buffer that, either+--     directly or through secondary command buffers, also contains a+--     'cmdResetQueryPool' command affecting the same query+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a+--     valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid+--     combination of+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'+--     values+--+-- -   #VUID-vkCmdBeginQuery-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-vkCmdBeginQuery-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, compute, decode, or encode+--     operations+--+-- -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',+-- 'Vulkan.Core10.Handles.QueryPool'+cmdBeginQuery :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which this command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @queryPool@ is the query pool that will manage the results of the query.+                 QueryPool+              -> -- | @query@ is the query index within the query pool that will contain the+                 -- results.+                 ("query" ::: Word32)+              -> -- | @flags@ is a bitmask of+                 -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'+                 -- specifying constraints on the types of queries that /can/ be performed.+                 QueryControlFlags+              -> io ()+cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do+  let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdBeginQueryPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing+  let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr+  traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags))+  pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginQuery' and 'cmdEndQuery'+--+-- Note that 'cmdEndQuery' is *not* called if an exception is thrown by the+-- inner action.+cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r+cmdUseQuery commandBuffer queryPool query flags a =+  (cmdBeginQuery commandBuffer queryPool query flags) *> a <* (cmdEndQuery commandBuffer queryPool query)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdEndQuery+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()++-- | vkCmdEndQuery - Ends a query+--+-- = Description+--+-- Calling 'cmdEndQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with+-- the @index@ parameter set to zero.+--+-- As queries operate asynchronously, ending a query does not immediately+-- set the query’s status to available. A query is considered /finished/+-- when the final results of the query are ready to be retrieved by+-- 'Vulkan.Core10.Query.getQueryPoolResults' and 'cmdCopyQueryPoolResults',+-- and this is when the query’s status is set to available.+--+-- Once a query is ended the query /must/ finish in finite time, unless the+-- state of the query is changed using other commands, e.g. by issuing a+-- reset of the query.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command+--     /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- -   #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not+--     be a protected command buffer+--+-- -   #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a+--     render pass instance, the sum of @query@ and the number of bits set+--     in the current subpass’s view mask /must/ be less than or equal to+--     the number of queries in @queryPool@+--+-- -   #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with+--     a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one or more of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',+--     the 'cmdEndQuery' /must/ be the last recorded command in+--     @commandBuffer@+--+-- -   #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with+--     a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one or more of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',+--     the 'cmdEndQuery' /must/ not be recorded within a render pass+--     instance+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a+--     valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdEndQuery-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-vkCmdEndQuery-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, compute, decode, or encode+--     operations+--+-- -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'+cmdEndQuery :: forall io+             . (MonadIO io)+            => -- | @commandBuffer@ is the command buffer into which this command will be+               -- recorded.+               CommandBuffer+            -> -- | @queryPool@ is the query pool that is managing the results of the query.+               QueryPool+            -> -- | @query@ is the query index within the query pool where the result is+               -- stored.+               ("query" ::: Word32)+            -> io ()+cmdEndQuery commandBuffer queryPool query = liftIO $ do+  let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdEndQueryPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing+  let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr+  traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdResetQueryPool+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()++-- | vkCmdResetQueryPool - Reset queries in a query pool+--+-- = Description+--+-- When executed on a queue, this command sets the status of query indices+-- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.+--+-- If the @queryType@ used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this+-- command sets the status of query indices [@firstQuery@, @firstQuery@ ++-- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as+-- indicated by a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.+--+-- Note+--+-- Because 'cmdResetQueryPool' resets all the passes of the indicated+-- queries, applications must not record a 'cmdResetQueryPool' command for+-- a @queryPool@ created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a+-- command buffer that needs to be submitted multiple times as indicated by+-- a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.+-- Otherwise applications will never be able to complete the recorded+-- queries.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be+--     less than the number of queries in @queryPool@+--+-- -   #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@+--     and @queryCount@ /must/ be less than or equal to the number of+--     queries in @queryPool@+--+-- -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the+--     command /must/ not be active+--+-- -   #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was+--     created with+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     this command /must/ not be recorded in a command buffer that, either+--     directly or through secondary command buffers, also contains begin+--     commands for a query from the set of queries [@firstQuery@,+--     @firstQuery@ + @queryCount@ - 1]+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be+--     a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdResetQueryPool-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-vkCmdResetQueryPool-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, compute, decode, or encode+--     operations+--+-- -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'+cmdResetQueryPool :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which this command will be+                     -- recorded.+                     CommandBuffer+                  -> -- | @queryPool@ is the handle of the query pool managing the queries being+                     -- reset.+                     QueryPool+                  -> -- | @firstQuery@ is the initial query index to reset.+                     ("firstQuery" ::: Word32)+                  -> -- | @queryCount@ is the number of queries to reset.+                     ("queryCount" ::: Word32)+                  -> io ()+cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do+  let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing+  let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr+  traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWriteTimestamp+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()++-- | vkCmdWriteTimestamp - Write a device timestamp into a query object+--+-- = Description+--+-- 'cmdWriteTimestamp' latches the value of the timer when all previous+-- commands have completed executing as far as the specified pipeline+-- stage, and writes the timestamp value to memory. When the timestamp+-- value is written, the availability status of the query is set to+-- available.+--+-- Note+--+-- If an implementation is unable to detect completion and latch the timer+-- at any specific stage of the pipeline, it /may/ instead do so at any+-- logically later stage.+--+-- Comparisons between timestamps are not meaningful if the timestamps are+-- written by commands submitted to different queues.+--+-- Note+--+-- An example of such a comparison is subtracting an older timestamp from a+-- newer one to determine the execution time of a sequence of commands.+--+-- If 'cmdWriteTimestamp' is called while executing a render pass instance+-- that has multiview enabled, the timestamp uses N consecutive query+-- indices in the query pool (starting at @query@) where N is the number of+-- bits set in the view mask of the subpass the command is executed in. The+-- resulting query values are determined by an implementation-dependent+-- choice of one of the following behaviors:+--+-- -   The first query is a timestamp value and (if more than one bit is+--     set in the view mask) zero is written to the remaining queries. If+--     two timestamps are written in the same subpass, the sum of the+--     execution time of all views between those commands is the difference+--     between the first query written by each command.+--+-- -   All N queries are timestamp values. If two timestamps are written in+--     the same subpass, the sum of the execution time of all views between+--     those commands is the sum of the difference between corresponding+--     queries written by each command. The difference between+--     corresponding queries /may/ be the execution time of a single view.+--+-- In either case, the application /can/ sum the differences between all N+-- queries to determine the total execution time.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@+--     /must/ be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>+--     for the queue family that was used to create the command pool that+--     @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04081# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_NONE_KHR'+--+-- -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have+--     been created with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- -   #VUID-vkCmdWriteTimestamp-queryPool-00828# The query identified by+--     @queryPool@ and @query@ /must/ be /unavailable/+--+-- -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command+--     pool’s queue family /must/ support a non-zero @timestampValidBits@+--+-- -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than+--     the number of queries in @queryPool@+--+-- -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the+--     command /must/ be unavailable+--+-- -   #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is+--     called within a render pass instance, the sum of @query@ and the+--     number of bits set in the current subpass’s view mask /must/ be less+--     than or equal to the number of queries in @queryPool@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@+--     /must/ be a valid+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     value+--+-- -   #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be+--     a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdWriteTimestamp-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-vkCmdWriteTimestamp-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, compute, decode,+--     or encode operations+--+-- -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',+-- 'Vulkan.Core10.Handles.QueryPool'+cmdWriteTimestamp :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which the command will be+                     -- recorded.+                     CommandBuffer+                  -> -- | @pipelineStage@ is a+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,+                     -- specifying a stage of the pipeline.+                     PipelineStageFlagBits+                  -> -- | @queryPool@ is the query pool that will manage the timestamp.+                     QueryPool+                  -> -- | @query@ is the query within the query pool that will contain the+                     -- timestamp.+                     ("query" ::: Word32)+                  -> io ()+cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do+  let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdWriteTimestampPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing+  let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr+  traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp' (commandBufferHandle (commandBuffer)) (pipelineStage) (queryPool) (query))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyQueryPoolResults+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()++-- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool+-- to a buffer object+--+-- = Description+--+-- 'cmdCopyQueryPoolResults' is guaranteed to see the effect of previous+-- uses of 'cmdResetQueryPool' in the same queue, without any additional+-- synchronization. Thus, the results will always reflect the most recent+-- use of the query.+--+-- @flags@ has the same possible values described above for the @flags@+-- parameter of 'Vulkan.Core10.Query.getQueryPoolResults', but the+-- different style of execution causes some subtle behavioral differences.+-- Because 'cmdCopyQueryPoolResults' executes in order with respect to+-- other query commands, there is less ambiguity about which use of a query+-- is being requested.+--+-- Results for all requested occlusion queries, pipeline statistics+-- queries, transform feedback queries, and timestamp queries are written+-- as 64-bit unsigned integer values if+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set or+-- 32-bit unsigned integer values otherwise. Performance queries store+-- results in a tightly packed array whose type is determined by the @unit@+-- member of the corresponding+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'.+--+-- If neither of+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' and+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+-- are set, results are only written out for queries in the available+-- state.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is+-- set, the implementation will wait for each query’s status to be in the+-- available state before retrieving the numerical results for that query.+-- This is guaranteed to reflect the most recent use of the query on the+-- same queue, assuming that the query is not being simultaneously used by+-- other queues. If the query does not become available in a finite amount+-- of time (e.g. due to not issuing a query since the last reset), a+-- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' error /may/ occur.+--+-- Similarly, if+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+-- is set and+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is not+-- set, the availability is guaranteed to reflect the most recent use of+-- the query on the same queue, assuming that the query is not being+-- simultaneously used by other queues. As with+-- 'Vulkan.Core10.Query.getQueryPoolResults', implementations /must/+-- guarantee that if they return a non-zero availability value, then the+-- numerical results are valid.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is+-- set, 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is+-- not set, and the query’s status is unavailable, an intermediate result+-- value between zero and the final result value is written for that query.+--+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'+-- /must/ not be used if the pool’s @queryType@ is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'.+--+-- 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and+-- its writes to buffer memory /must/ be synchronized using+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'+-- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'+-- before using the results.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/+--     be less than the size of @dstBuffer@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@+--     /must/ be less than the number of queries in @queryPool@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-00822# If+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not+--     set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of+--     @4@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-00823# If+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set+--     in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/+--     have enough storage, from @dstOffset@, to contain the result of each+--     query, as described+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/+--     not contain+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     @flags@ /must/ not contain+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'+--     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     the @queryPool@ /must/ have been submitted once for each pass as+--     retrieved via a call to+--     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-02734#+--     'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@+--     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a+--     valid combination of+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values+--+-- -   #VUID-vkCmdCopyQueryPoolResults-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-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only+--     be called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of+--     @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'+cmdCopyQueryPoolResults :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which this command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @queryPool@ is the query pool managing the queries containing the+                           -- desired results.+                           QueryPool+                        -> -- | @firstQuery@ is the initial query index.+                           ("firstQuery" ::: Word32)+                        -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@+                           -- together define a range of queries.+                           ("queryCount" ::: Word32)+                        -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive+                           -- the results of the copy command.+                           ("dstBuffer" ::: Buffer)+                        -> -- | @dstOffset@ is an offset into @dstBuffer@.+                           ("dstOffset" ::: DeviceSize)+                        -> -- | @stride@ is the stride in bytes between results for individual queries+                           -- within @dstBuffer@. The required size of the backing memory for+                           -- @dstBuffer@ is determined as described above for+                           -- 'Vulkan.Core10.Query.getQueryPoolResults'.+                           ("stride" ::: DeviceSize)+                        -> -- | @flags@ is a bitmask of+                           -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying+                           -- how and when results are returned.+                           QueryResultFlags+                        -> io ()+cmdCopyQueryPoolResults commandBuffer queryPool firstQuery queryCount dstBuffer dstOffset stride flags = liftIO $ do+  let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing+  let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr+  traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount) (dstBuffer) (dstOffset) (stride) (flags))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdPushConstants+  :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()++-- | vkCmdPushConstants - Update the values of push constants+--+-- = Description+--+-- When a command buffer begins recording, all push constant values are+-- undefined. Reads of undefined push constant values by the executing+-- shader return undefined values.+--+-- Push constant values /can/ be updated incrementally, causing shader+-- stages in @stageFlags@ to read the new data from @pValues@ for push+-- constants modified by this command, while still reading the previous+-- data for push constants not modified by this command. When a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline command>+-- is issued, the bound pipeline’s layout /must/ be compatible with the+-- layouts used to set the values of all push constants in the pipeline+-- layout’s push constant ranges, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- Binding a pipeline with a layout that is not compatible with the push+-- constant layout does not disturb the push constant values.+--+-- Note+--+-- As @stageFlags@ needs to include all flags the relevant push constant+-- ranges were created with, any flags that are not supported by the queue+-- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate+-- @commandBuffer@ was created on are ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdPushConstants-offset-01795# For each byte in the range+--     specified by @offset@ and @size@ and for each shader stage in+--     @stageFlags@, there /must/ be a push constant range in @layout@ that+--     includes that byte and that stage+--+-- -   #VUID-vkCmdPushConstants-offset-01796# For each byte in the range+--     specified by @offset@ and @size@ and for each push constant range+--     that overlaps that byte, @stageFlags@ /must/ include all stages in+--     that push constant range’s+--     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@+--+-- -   #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple+--     of @4@+--+-- -   #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of+--     @4@+--+-- -   #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@+--+-- -   #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or+--     equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@+--     minus @offset@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a+--     valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- -   #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/+--     be a valid combination of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values+--+-- -   #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@+--     /must/ not be @0@+--+-- -   #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a+--     valid pointer to an array of @size@ bytes+--+-- -   #VUID-vkCmdPushConstants-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-vkCmdPushConstants-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater+--     than @0@+--+-- -   #VUID-vkCmdPushConstants-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#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.PipelineLayout',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'+cmdPushConstants :: forall io+                  . (MonadIO io)+                 => -- | @commandBuffer@ is the command buffer in which the push constant update+                    -- will be recorded.+                    CommandBuffer+                 -> -- | @layout@ is the pipeline layout used to program the push constant+                    -- updates.+                    PipelineLayout+                 -> -- | @stageFlags@ is a bitmask of+                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying+                    -- the shader stages that will use the push constants in the updated range.+                    ShaderStageFlags+                 -> -- | @offset@ is the start offset of the push constant range to update, in+                    -- units of bytes.+                    ("offset" ::: Word32)+                 -> -- | @size@ is the size of the push constant range to update, in units of+                    -- bytes.+                    ("size" ::: Word32)+                 -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new+                    -- push constant values.+                    ("values" ::: Ptr ())+                 -> io ()+cmdPushConstants commandBuffer layout stageFlags offset size values = liftIO $ do+  let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdPushConstantsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing+  let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr+  traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants' (commandBufferHandle (commandBuffer)) (layout) (stageFlags) (offset) (size) (values))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBeginRenderPass+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()++-- | vkCmdBeginRenderPass - Begin a new render pass+--+-- = Description+--+-- After beginning a render pass instance, the command buffer is ready to+-- record the commands for the first subpass of that render pass.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the+--     @stencilInitialLayout@ or @stencilFinalLayout@ member of the+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+--     structures or the @stencilLayout@ member of the+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the+--     @initialLayout@ member of any of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when+--     creating the render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is not+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each+--     such @initialLayout@ /must/ be equal to the current layout of the+--     corresponding attachment image subresource of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@+--+-- -   #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@+--     members of any element of the @pDependencies@ member of+--     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create+--     @renderPass@ /must/ be supported by the capabilities of the queue+--     family identified by the @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the+--     command pool which @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@+--     members of any element of the @pDependencies@ member of+--     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create+--     @renderPass@ /must/ be supported by the capabilities of the queue+--     family identified by the @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the+--     command pool which @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in+--     @framebuffer@ that is used by @renderPass@ and is bound to memory+--     locations that are also bound to another attachment used by+--     @renderPass@, and if at least one of those uses causes either+--     attachment to be written to, both attachments /must/ have had the+--     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'+--     set+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#+--     @pRenderPassBegin@ /must/ be a valid pointer to a valid+--     'RenderPassBeginInfo' structure+--+-- -   #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be+--     a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value+--+-- -   #VUID-vkCmdBeginRenderPass-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-vkCmdBeginRenderPass-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+cmdBeginRenderPass :: forall a io+                    . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)+                   => -- | @commandBuffer@ is the command buffer in which to record the command.+                      CommandBuffer+                   -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure+                      -- specifying the render pass to begin an instance of, and the framebuffer+                      -- the instance uses.+                      (RenderPassBeginInfo a)+                   -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+                      -- value specifying how the commands in the first subpass will be provided.+                      SubpassContents+                   -> io ()+cmdBeginRenderPass commandBuffer renderPassBegin contents = liftIO . evalContT $ do+  let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing+  let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr+  pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)+  lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) (contents))+  pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginRenderPass' and 'cmdEndRenderPass'+--+-- Note that 'cmdEndRenderPass' is *not* called if an exception is thrown+-- by the inner action.+cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r+cmdUseRenderPass commandBuffer pRenderPassBegin contents a =+  (cmdBeginRenderPass commandBuffer pRenderPassBegin contents) *> a <* (cmdEndRenderPass commandBuffer)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdNextSubpass+  :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()++-- | vkCmdNextSubpass - Transition to the next subpass of a render pass+--+-- = Description+--+-- The subpass index for a render pass begins at zero when+-- 'cmdBeginRenderPass' is recorded, and increments each time+-- 'cmdNextSubpass' is recorded.+--+-- Moving to the next subpass automatically performs any multisample+-- resolve operations in the subpass being ended. End-of-subpass+-- multisample resolves are treated as color attachment writes for the+-- purposes of synchronization. This applies to resolve operations for both+-- color and depth\/stencil attachments. That is, they are considered to+-- execute in the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'+-- pipeline stage and their writes are synchronized with+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.+-- Synchronization between rendering within a subpass and any resolve+-- operations at the end of the subpass occurs automatically, without need+-- for explicit dependencies or pipeline barriers. However, if the resolve+-- attachment is also used in a different subpass, an explicit dependency+-- is needed.+--+-- After transitioning to the next subpass, the application /can/ record+-- the commands for that subpass.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/+--     be less than the number of subpasses in the render pass minus one+--+-- -   #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be+--     recorded when transform feedback is active+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a+--     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value+--+-- -   #VUID-vkCmdNextSubpass-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-vkCmdNextSubpass-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+cmdNextSubpass :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer in which to record the command.+                  CommandBuffer+               -> -- | @contents@ specifies how the commands in the next subpass will be+                  -- provided, in the same fashion as the corresponding parameter of+                  -- 'cmdBeginRenderPass'.+                  SubpassContents+               -> io ()+cmdNextSubpass commandBuffer contents = liftIO $ do+  let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdNextSubpassPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing+  let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr+  traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass' (commandBufferHandle (commandBuffer)) (contents))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdEndRenderPass+  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()++-- | vkCmdEndRenderPass - End the current render pass+--+-- = Description+--+-- Ending a render pass instance performs any multisample resolve+-- operations on the final subpass.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdEndRenderPass-None-00910# The current subpass index+--     /must/ be equal to the number of subpasses in the render pass minus+--     one+--+-- -   #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be+--     recorded when transform feedback is active+--+-- -   #VUID-vkCmdEndRenderPass-None-06170# The current render pass+--     instance /must/ not have been begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdEndRenderPass-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-vkCmdEndRenderPass-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdEndRenderPass :: forall io+                  . (MonadIO io)+                 => -- | @commandBuffer@ is the command buffer in which to end the current render+                    -- pass instance.+                    CommandBuffer+                 -> io ()+cmdEndRenderPass commandBuffer = liftIO $ do+  let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdEndRenderPassPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing+  let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr+  traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass' (commandBufferHandle (commandBuffer)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdExecuteCommands+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()++-- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary+-- command buffer+--+-- = Description+--+-- If any element of @pCommandBuffers@ was not recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+-- flag, and it was recorded into any other primary command buffer which is+-- currently in the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,+-- that primary command buffer becomes+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of+--     @pCommandBuffers@ /must/ have been allocated with a @level@ of+--     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of+--     @pCommandBuffers@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of+--     @pCommandBuffers@ was not recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--     flag, it /must/ not be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of+--     @pCommandBuffers@ was not recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--     flag, it /must/ not have already been recorded to @commandBuffer@+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of+--     @pCommandBuffers@ was not recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--     flag, it /must/ not appear more than once in @pCommandBuffers@+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of+--     @pCommandBuffers@ /must/ have been allocated from a+--     'Vulkan.Core10.Handles.CommandPool' that was created for the same+--     queue family as the 'Vulkan.Core10.Handles.CommandPool' from which+--     @commandBuffer@ was allocated+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If+--     'cmdExecuteCommands' is being called within a render pass instance,+--     each element of @pCommandBuffers@ /must/ have been recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If+--     'cmdExecuteCommands' is being called within a render pass instance,+--     and any element of @pCommandBuffers@ was recorded with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@+--     not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that+--     'Vulkan.Core10.Handles.Framebuffer' /must/ match the+--     'Vulkan.Core10.Handles.Framebuffer' used in the current render pass+--     instance+--+-- -   #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'cmdBeginRenderPass', its @contents@ parameter /must/ have been set+--     to+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@+--     /must/ have been recorded with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@+--     set to the index of the subpass which the given command buffer will+--     be executed in+--+-- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'cmdBeginRenderPass', the render passes specified in the+--     @pBeginInfo->pInheritanceInfo->renderPass@ members of the+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to+--     begin recording each element of @pCommandBuffers@ /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the current render pass+--+-- -   #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is+--     being called within a render pass instance that included+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+--     @pCommandBuffers@ /must/ have been recorded with+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'+--     in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'+--+-- -   #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is+--     being called within a render pass instance that included+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+--     @pCommandBuffers@ /must/ have been recorded with+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@+--     identical to+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+--+-- -   #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is+--     being called within a render pass instance that included+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+--     @pCommandBuffers@ /must/ have been recorded with+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@+--     identical to 'RenderPassBeginInfo'::@renderArea@+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If+--     'cmdExecuteCommands' is not being called within a render pass+--     instance, each element of @pCommandBuffers@ /must/ not have been+--     recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+--     feature is not enabled, @commandBuffer@ /must/ not have any queries+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+--     then each element of @pCommandBuffers@ /must/ have been recorded+--     with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+--     then each element of @pCommandBuffers@ /must/ have been recorded+--     with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@+--     having all bits set that are set for the query+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'+--     query+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+--     then each element of @pCommandBuffers@ /must/ have been recorded+--     with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@+--     having all bits set that are set in the+--     'Vulkan.Core10.Handles.QueryPool' the query uses+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of+--     @pCommandBuffers@ /must/ not begin any query types that are+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--     in @commandBuffer@+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@+--     is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, each element of @pCommandBuffers@ /must/ be a+--     protected command buffer+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, each element of @pCommandBuffers@ /must/ be an+--     unprotected command buffer+--+-- -   #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be+--     recorded when transform feedback is active+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If+--     @pCommandBuffers@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     there /must/ be no action or synchronization commands between that+--     render pass instance and any render pass instance that resumes it+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If+--     @pCommandBuffers@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     there /must/ be no render pass instances between that render pass+--     instance and any render pass instance that resumes it+--+-- -   #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+--     limit is not supported, and any element of @pCommandBuffers@+--     contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     where a graphics pipeline has been bound, any pipelines bound in the+--     render pass instance that resumes it, or any subsequent render pass+--     instances that resume from that one and so on, /must/ use the same+--     sample locations+--+-- -   #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     its+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@+--     parameter /must/ have included+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the render passes specified in the+--     @pBeginInfo->pInheritanceInfo->renderPass@ members of the+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to+--     begin recording each element of @pCommandBuffers@ /must/ be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @flags@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     excluding+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @colorAttachmentCount@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+--     element of the @pColorAttachmentFormats@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the format used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthAttachmentFormat@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the format used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @stencilAttachmentFormat@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the format used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @viewMask@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+--     element of the @pColorAttachmentSamples@ member of the+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of the+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of the+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be equal to the sample count used to create that image view+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#+--     @pCommandBuffers@ /must/ be a valid pointer to an array of+--     @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'+--     handles+--+-- -   #VUID-vkCmdExecuteCommands-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-vkCmdExecuteCommands-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdExecuteCommands-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- -   #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#+--     @commandBufferCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,+--     and the elements of @pCommandBuffers@ /must/ have been created,+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdExecuteCommands :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is a handle to a primary command buffer that the+                      -- secondary command buffers are executed in.+                      CommandBuffer+                   -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@+                      -- secondary command buffer handles, which are recorded to execute in the+                      -- primary command buffer in the order they are listed in the array.+                      ("commandBuffers" ::: Vector CommandBuffer)+                   -> io ()+cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do+  let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing+  let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr+  pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)+  lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers))+  pure $ ()+++-- | VkClearRect - Structure specifying a clear rectangle+--+-- = Description+--+-- The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting+-- from the base layer of the attachment image view are cleared.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'+data ClearRect = ClearRect+  { -- | @rect@ is the two-dimensional region to be cleared.+    rect :: Rect2D+  , -- | @baseArrayLayer@ is the first layer to be cleared.+    baseArrayLayer :: Word32+  , -- | @layerCount@ is the number of layers to clear.+    layerCount :: Word32+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ClearRect)+#endif+deriving instance Show ClearRect++instance ToCStruct ClearRect where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ClearRect{..} f = do+    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)+    f+  cStructSize = 24+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    f++instance FromCStruct ClearRect where+  peekCStruct p = do+    rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))+    baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pure $ ClearRect+             rect baseArrayLayer layerCount++instance Storable ClearRect where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ClearRect where+  zero = ClearRect+           zero+           zero+           zero+++-- | VkImageSubresourceLayers - Structure specifying an image subresource+-- layers+--+-- == Valid Usage+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@+--     contains+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it+--     /must/ not contain either of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/+--     not contain+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/+--     not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index+--     /i/+--+-- -   #VUID-VkImageSubresourceLayers-layerCount-01700# @layerCount@ /must/+--     be greater than 0+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#+--     @aspectMask@ /must/ not be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'BufferImageCopy',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',+-- 'ImageCopy',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',+-- 'ImageResolve',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2'+data ImageSubresourceLayers = ImageSubresourceLayers+  { -- | @aspectMask@ is a combination of+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting+    -- the color, depth and\/or stencil aspects to be copied.+    aspectMask :: ImageAspectFlags+  , -- | @mipLevel@ is the mipmap level to copy+    mipLevel :: Word32+  , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of+    -- layers to copy.+    baseArrayLayer :: Word32+  , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"+    layerCount :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageSubresourceLayers)+#endif+deriving instance Show ImageSubresourceLayers++instance ToCStruct ImageSubresourceLayers where+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageSubresourceLayers{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)+    f+  cStructSize = 16+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+    f++instance FromCStruct ImageSubresourceLayers where+  peekCStruct p = do+    aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))+    mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+    baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+    layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+    pure $ ImageSubresourceLayers+             aspectMask mipLevel baseArrayLayer layerCount++instance Storable ImageSubresourceLayers where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageSubresourceLayers where+  zero = ImageSubresourceLayers+           zero+           zero+           zero+           zero+++-- | VkBufferCopy - Structure specifying a buffer copy operation+--+-- == Valid Usage+--+-- -   #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'+data BufferCopy = BufferCopy+  { -- | @srcOffset@ is the starting offset in bytes from the start of+    -- @srcBuffer@.+    srcOffset :: DeviceSize+  , -- | @dstOffset@ is the starting offset in bytes from the start of+    -- @dstBuffer@.+    dstOffset :: DeviceSize+  , -- | @size@ is the number of bytes to copy.+    size :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferCopy)+#endif+deriving instance Show BufferCopy++instance ToCStruct BufferCopy where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferCopy{..} f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct BufferCopy where+  peekCStruct p = do+    srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))+    dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))+    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    pure $ BufferCopy+             srcOffset dstOffset size++instance Storable BufferCopy where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCopy where+  zero = BufferCopy+           zero+           zero+           zero+++-- | VkImageCopy - Structure specifying an image copy operation+--+-- = Description+--+-- For 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' images, copies are+-- performed slice by slice starting with the @z@ member of the @srcOffset@+-- or @dstOffset@, and copying @depth@ slices. For images with multiple+-- layers, copies are performed layer by layer starting with the+-- @baseArrayLayer@ member of the @srcSubresource@ or @dstSubresource@ and+-- copying @layerCount@ layers. Image data /can/ be copied between images+-- with different image types. If one image is+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other image is+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple layers, then+-- each slice is copied to or from a different layer.+--+-- Copies involving a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- specify the region to be copied in terms of the /plane/ to be copied,+-- not the coordinates of the multi-planar image. This means that copies+-- accessing the R\/B planes of “@_422@” format images /must/ fit the+-- copied region within half the @width@ of the parent image, and that+-- copies accessing the R\/B planes of “@_420@” format images /must/ fit+-- the copied region within half the @width@ and @height@ of the parent+-- image.+--+-- == Valid Usage+--+-- -   #VUID-VkImageCopy-extent-00140# The number of slices of the @extent@+--     (for 3D) or layers of the @srcSubresource@ (for non-3D) /must/ match+--     the number of slices of the @extent@ (for 3D) or layers of the+--     @dstSubresource@ (for non-3D)+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- -   #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'+data ImageCopy = ImageCopy+  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'+    -- structures specifying the image subresources of the images used for the+    -- source and destination image data, respectively.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+    -- in texels of the sub-regions of the source and destination image data.+    srcOffset :: Offset3D+  , -- No documentation found for Nested "VkImageCopy" "dstSubresource"+    dstSubresource :: ImageSubresourceLayers+  , -- No documentation found for Nested "VkImageCopy" "dstOffset"+    dstOffset :: Offset3D+  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@+    -- and @depth@.+    extent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCopy)+#endif+deriving instance Show ImageCopy++instance ToCStruct ImageCopy where+  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageCopy{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)+    f+  cStructSize = 68+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct ImageCopy where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))+    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))+    pure $ ImageCopy+             srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageCopy where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCopy where+  zero = ImageCopy+           zero+           zero+           zero+           zero+           zero+++-- | VkImageBlit - Structure specifying an image blit operation+--+-- = Description+--+-- For each element of the @pRegions@ array, a blit operation is performed+-- for the specified source and destination regions.+--+-- == Valid Usage+--+-- -   #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- -   #VUID-VkImageBlit-layerCount-00239# The @layerCount@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- -   #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'cmdBlitImage'+data ImageBlit = ImageBlit+  { -- | @srcSubresource@ is the subresource to blit from.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffsets@ is a pointer to an array of two+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+    -- bounds of the source region within @srcSubresource@.+    srcOffsets :: (Offset3D, Offset3D)+  , -- | @dstSubresource@ is the subresource to blit into.+    dstSubresource :: ImageSubresourceLayers+  , -- | @dstOffsets@ is a pointer to an array of two+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+    -- bounds of the destination region within @dstSubresource@.+    dstOffsets :: (Offset3D, Offset3D)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageBlit)+#endif+deriving instance Show ImageBlit++instance ToCStruct ImageBlit where+  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageBlit{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+    case (srcOffsets) of+      (e0, e1) -> do+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+    case (dstOffsets) of+      (e0, e1) -> do+        poke (pDstOffsets' :: Ptr Offset3D) (e0)+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    f+  cStructSize = 80+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+    case ((zero, zero)) of+      (e0, e1) -> do+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+    case ((zero, zero)) of+      (e0, e1) -> do+        poke (pDstOffsets' :: Ptr Offset3D) (e0)+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    f++instance FromCStruct ImageBlit where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))+    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+    pure $ ImageBlit+             srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))++instance Storable ImageBlit where+  sizeOf ~_ = 80+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageBlit where+  zero = ImageBlit+           zero+           (zero, zero)+           zero+           (zero, zero)+++-- | VkBufferImageCopy - Structure specifying a buffer image copy operation+--+-- = Description+--+-- When copying to or from a depth or stencil aspect, the data in buffer+-- memory uses a layout that is a (mostly) tightly packed representation of+-- the depth or stencil data. Specifically:+--+-- -   data copied to or from the stencil aspect of any depth\/stencil+--     format is tightly packed with one+--     'Vulkan.Core10.Enums.Format.FORMAT_S8_UINT' value per texel.+--+-- -   data copied to or from the depth aspect of a+--     'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' or+--     'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM_S8_UINT' format is+--     tightly packed with one+--     'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' value per texel.+--+-- -   data copied to or from the depth aspect of a+--     'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' or+--     'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT_S8_UINT' format is+--     tightly packed with one+--     'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' value per texel.+--+-- -   data copied to or from the depth aspect of a+--     'Vulkan.Core10.Enums.Format.FORMAT_X8_D24_UNORM_PACK32' or+--     'Vulkan.Core10.Enums.Format.FORMAT_D24_UNORM_S8_UINT' format is+--     packed with one 32-bit word per texel with the D24 value in the LSBs+--     of the word, and undefined values in the eight MSBs.+--+-- Note+--+-- To copy both the depth and stencil aspects of a depth\/stencil format,+-- two entries in @pRegions@ /can/ be used, where one specifies the depth+-- aspect in @imageSubresource@, and the other specifies the stencil+-- aspect.+--+-- Because depth or stencil aspect buffer to image copies /may/ require+-- format conversions on some implementations, they are not supported on+-- queues that do not support graphics.+--+-- When copying to a depth aspect, and the+-- @VK_EXT_depth_range_unrestricted@ extension is not enabled, the data in+-- buffer memory /must/ be in the range [0,1], or the resulting values are+-- undefined.+--+-- Copies are done layer by layer starting with image layer+-- @baseArrayLayer@ member of @imageSubresource@. @layerCount@ layers are+-- copied from the source image or to the destination image.+--+-- For purpose of valid usage statements here and in related copy commands,+-- a /blocked image/ is defined as:+--+-- -   an image with a /single-plane/, “@_422@” format, which is treated as+--     a format with a 2 × 1 compressed texel block, or+--+-- -   a compressed image.+--+-- == Valid Usage+--+-- -   #VUID-VkBufferImageCopy-bufferRowLength-00195# @bufferRowLength@+--     /must/ be @0@, or greater than or equal to the @width@ member of+--     @imageExtent@+--+-- -   #VUID-VkBufferImageCopy-bufferImageHeight-00196# @bufferImageHeight@+--     /must/ be @0@, or greater than or equal to the @height@ member of+--     @imageExtent@+--+-- -   #VUID-VkBufferImageCopy-aspectMask-00212# The @aspectMask@ member of+--     @imageSubresource@ /must/ only have a single bit set+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkBufferImageCopy-imageSubresource-parameter#+--     @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'+--     structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',+-- 'cmdCopyImageToBuffer'+data BufferImageCopy = BufferImageCopy+  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer+    -- object where the image data is copied from or to.+    bufferOffset :: DeviceSize+  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion+    -- of a larger two- or three-dimensional image in buffer memory, and+    -- control the addressing calculations. If either of these values is zero,+    -- that aspect of the buffer memory is considered to be tightly packed+    -- according to the @imageExtent@.+    bufferRowLength :: Word32+  , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"+    bufferImageHeight :: Word32+  , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the+    -- specific image subresources of the image used for the source or+    -- destination image data.+    imageSubresource :: ImageSubresourceLayers+  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the+    -- sub-region of the source or destination image data.+    imageOffset :: Offset3D+  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,+    -- @height@ and @depth@.+    imageExtent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferImageCopy)+#endif+deriving instance Show BufferImageCopy++instance ToCStruct BufferImageCopy where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferImageCopy{..} f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)+    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)+    f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct BufferImageCopy where+  peekCStruct p = do+    bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))+    bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+    bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))+    pure $ BufferImageCopy+             bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent++instance Storable BufferImageCopy where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferImageCopy where+  zero = BufferImageCopy+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkImageResolve - Structure specifying an image resolve operation+--+-- == Valid Usage+--+-- -   #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ only contain+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageResolve-layerCount-00267# The @layerCount@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@+--     /must/ be a valid 'ImageSubresourceLayers' structure+--+-- -   #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@+--     /must/ be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'+data ImageResolve = ImageResolve+  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'+    -- structures specifying the image subresources of the images used for the+    -- source and destination image data, respectively. Resolve of+    -- depth\/stencil images is not supported.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+    -- in texels of the sub-regions of the source and destination image data.+    srcOffset :: Offset3D+  , -- No documentation found for Nested "VkImageResolve" "dstSubresource"+    dstSubresource :: ImageSubresourceLayers+  , -- No documentation found for Nested "VkImageResolve" "dstOffset"+    dstOffset :: Offset3D+  , -- | @extent@ is the size in texels of the source image to resolve in+    -- @width@, @height@ and @depth@.+    extent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageResolve)+#endif+deriving instance Show ImageResolve++instance ToCStruct ImageResolve where+  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageResolve{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)+    f+  cStructSize = 68+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct ImageResolve where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))+    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))+    pure $ ImageResolve+             srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageResolve where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageResolve where+  zero = ImageResolve+           zero+           zero+           zero+           zero+           zero+++-- | VkRenderPassBeginInfo - Structure specifying render pass begin+-- information+--+-- = Description+--+-- @renderArea@ is the render area that is affected by the render pass+-- instance. The effects of attachment load, store and multisample resolve+-- operations are restricted to the pixels whose x and y coordinates fall+-- within the render area on all attachments. The render area extends to+-- all layers of @framebuffer@. The application /must/ ensure (using+-- scissor if necessary) that all rendering is contained within the render+-- area. The render area, after any transform specified by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+-- is applied, /must/ be contained within the framebuffer dimensions.+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>+-- is enabled, then @renderArea@ /must/ equal the framebuffer+-- pre-transformed dimensions. After @renderArea@ has been transformed by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,+-- the resulting render area /must/ be equal to the framebuffer dimensions.+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- is enabled, then @renderArea@ /must/ equal the framebuffer dimensions.+--+-- When multiview is enabled, the resolve operation at the end of a subpass+-- applies to all views in the view mask.+--+-- Note+--+-- There /may/ be a performance cost for using a render area smaller than+-- the framebuffer, unless it matches the render area granularity for the+-- render pass.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@+--     /must/ be greater than the largest attachment index in @renderPass@+--     specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a+--     depth\/stencil format) of+--     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'+--+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If+--     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid+--     pointer to an array of @clearValueCount@ 'ClearValue' unions+--+-- -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when+--     creating @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.x@ /must/ be greater than or equal to 0+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.y@ /must/ be greater than or equal to 0+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less+--     than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@+--     the @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the+--     @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain+--     contains+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@+--     /must/ be less than or equal to+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the+--     @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain+--     contains+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@+--     /must/ be less than or equal to+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the+--     @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that did not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     and the @pNext@ chain includes a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure, its @attachmentCount@ /must/ be zero+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     the @attachmentCount@ of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be equal to the value+--     of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ have been created on+--     the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and+--     @renderPass@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the+--     @flags@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>+--     equal to the @usage@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@+--     member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' with a height equal to the+--     @height@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@+--     equal to the @layerCount@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     equal to the @viewFormatCount@ member of the corresponding element+--     of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a set of+--     elements in+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+--     equal to the set of elements in the @pViewFormats@ member of the+--     corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to+--     the corresponding value of+--     'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03217# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the+--     corresponding value of+--     'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in+--     @renderPass@+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain+--     includes+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',+--     @renderArea.offset@ /must/ equal (0,0)+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02870# If the @pNext@ chain+--     includes+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',+--     @renderArea.extent@ transformed by+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+--     /must/ equal the @framebuffer@ dimensions+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderPassBeginInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO'+--+-- -   #VUID-VkRenderPassBeginInfo-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.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',+--     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',+--     or+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--+-- -   #VUID-VkRenderPassBeginInfo-sType-unique# The @sType@ value of each+--     struct in the @pNext@ chain /must/ be unique+--+-- -   #VUID-VkRenderPassBeginInfo-renderPass-parameter# @renderPass@+--     /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle+--+-- -   #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and+--     @renderPass@ /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_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearValue', 'Vulkan.Core10.Handles.Framebuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D',+-- 'Vulkan.Core10.Handles.RenderPass',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRenderPass',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',+-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR'+data RenderPassBeginInfo (es :: [Type]) = RenderPassBeginInfo+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @renderPass@ is the render pass to begin an instance of.+    renderPass :: RenderPass+  , -- | @framebuffer@ is the framebuffer containing the attachments that are+    -- used with the render pass.+    framebuffer :: Framebuffer+  , -- | @renderArea@ is the render area that is affected by the render pass+    -- instance, and is described in more detail below.+    renderArea :: Rect2D+  , -- | @pClearValues@ is a pointer to an array of @clearValueCount@+    -- 'ClearValue' structures containing clear values for each attachment, if+    -- the attachment uses a @loadOp@ value of+    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' or if+    -- the attachment has a depth\/stencil format and uses a @stencilLoadOp@+    -- value of+    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'. The+    -- array is indexed by attachment number. Only elements corresponding to+    -- cleared attachments are used. Other elements of @pClearValues@ are+    -- ignored.+    clearValues :: Vector ClearValue+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassBeginInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)++instance Extensible RenderPassBeginInfo where+  extensibleTypeName = "RenderPassBeginInfo"+  setNext RenderPassBeginInfo{..} next' = RenderPassBeginInfo{next = next', ..}+  getNext RenderPassBeginInfo{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f+    | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f+    | Just Refl <- eqT @e @RenderPassSampleLocationsBeginInfoEXT = Just f+    | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f+    | otherwise = Nothing++instance (Extendss RenderPassBeginInfo es, PokeChain es) => ToCStruct (RenderPassBeginInfo es) where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderPassBeginInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (renderPass)+    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (framebuffer)+    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (renderArea)+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (clearValues)) :: Word32))+    pPClearValues' <- ContT $ allocaBytes @ClearValue ((Data.Vector.length (clearValues)) * 16)+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPClearValues' `plusPtr` (16 * (i)) :: Ptr ClearValue) (e) . ($ ())) (clearValues)+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ClearValue))) (pPClearValues')+    lift $ f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (zero)+    lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (zero)+    lift $ f++instance es ~ '[] => Zero (RenderPassBeginInfo es) where+  zero = RenderPassBeginInfo+           ()+           zero+           zero+           zero+           mempty+++-- | VkClearDepthStencilValue - Structure specifying a clear depth stencil+-- value+--+-- == Valid Usage+--+-- -   #VUID-VkClearDepthStencilValue-depth-00022# Unless the+--     @VK_EXT_depth_range_unrestricted@ extension is enabled @depth@+--     /must/ be between @0.0@ and @1.0@, inclusive+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearValue', 'cmdClearDepthStencilImage'+data ClearDepthStencilValue = ClearDepthStencilValue+  { -- | @depth@ is the clear value for the depth aspect of the depth\/stencil+    -- attachment. It is a floating-point value which is automatically+    -- converted to the attachment’s format.+    depth :: Float+  , -- | @stencil@ is the clear value for the stencil aspect of the+    -- depth\/stencil attachment. It is a 32-bit integer value which is+    -- converted to the attachment’s format by taking the appropriate number of+    -- LSBs.+    stencil :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ClearDepthStencilValue)+#endif+deriving instance Show ClearDepthStencilValue++instance ToCStruct ClearDepthStencilValue where+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ClearDepthStencilValue{..} f = do+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (depth))+    poke ((p `plusPtr` 4 :: Ptr Word32)) (stencil)+    f+  cStructSize = 8+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+    f++instance FromCStruct ClearDepthStencilValue where+  peekCStruct p = do+    depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))+    stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+    pure $ ClearDepthStencilValue+             (coerce @CFloat @Float depth) stencil++instance Storable ClearDepthStencilValue where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ClearDepthStencilValue where+  zero = ClearDepthStencilValue+           zero+           zero+++-- | VkClearAttachment - Structure specifying a clear attachment+--+-- == Valid Usage+--+-- -   #VUID-VkClearAttachment-aspectMask-00019# If @aspectMask@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it+--     /must/ not include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkClearAttachment-aspectMask-00020# @aspectMask@ /must/ not+--     include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'+--+-- -   #VUID-VkClearAttachment-aspectMask-02246# @aspectMask@ /must/ not+--     include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index /i/+--+-- -   #VUID-VkClearAttachment-clearValue-00021# @clearValue@ /must/ be a+--     valid 'ClearValue' union+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkClearAttachment-aspectMask-parameter# @aspectMask@ /must/ be+--     a valid combination of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values+--+-- -   #VUID-VkClearAttachment-aspectMask-requiredbitmask# @aspectMask@+--     /must/ not be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearValue',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',+-- 'cmdClearAttachments'+data ClearAttachment = ClearAttachment+  { -- | @aspectMask@ is a mask selecting the color, depth and\/or stencil+    -- aspects of the attachment to be cleared.+    aspectMask :: ImageAspectFlags+  , -- | @colorAttachment@ is only meaningful if+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' is set+    -- in @aspectMask@, in which case it is an index into the currently bound+    -- color attachments.+    colorAttachment :: Word32+  , -- | @clearValue@ is the color or depth\/stencil value to clear the+    -- attachment to, as described in+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values Clear Values>     -- below.     clearValue :: ClearValue   }
src/Vulkan/Core10/CommandPool.hs view
@@ -128,7 +128,7 @@                      -- specifying the state of the command pool object.                      CommandPoolCreateInfo                   -> -- | @pAllocator@ controls host memory allocation as described in the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                      -- chapter.                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io (CommandPool)@@ -177,17 +177,17 @@ -- -- Any primary command buffer allocated from another -- 'Vulkan.Core10.Handles.CommandPool' that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has a secondary command buffer allocated from @commandPool@ recorded -- into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- -   #VUID-vkDestroyCommandPool-commandPool-00041# All --     'Vulkan.Core10.Handles.CommandBuffer' objects allocated from --     @commandPool@ /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- -   #VUID-vkDestroyCommandPool-commandPool-00042# If --     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were@@ -232,7 +232,7 @@                    -> -- | @commandPool@ is the handle of the command pool to destroy.                       CommandPool                    -> -- | @pAllocator@ controls host memory allocation as described in the-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                       -- chapter.                       ("allocator" ::: Maybe AllocationCallbacks)                    -> io ()@@ -263,21 +263,21 @@ -- command buffers allocated from the command pool back to the command -- pool. All command buffers that have been allocated from the command pool -- are put in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. -- -- Any primary command buffer allocated from another -- 'Vulkan.Core10.Handles.CommandPool' that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has a secondary command buffer allocated from @commandPool@ recorded -- into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- -   #VUID-vkResetCommandPool-commandPool-00040# All --     'Vulkan.Core10.Handles.CommandBuffer' objects allocated from --     @commandPool@ /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --@@ -369,7 +369,7 @@     -- from it.     flags :: CommandPoolCreateFlags   , -- | @queueFamilyIndex@ designates a queue family as described in section-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-queueprops Queue Family Properties>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queueprops Queue Family Properties>.     -- All command buffers allocated from this command pool /must/ be submitted     -- on queues from the same queue family.     queueFamilyIndex :: Word32
src/Vulkan/Core10/DescriptorSet.hs view
@@ -83,7 +83,7 @@ import Vulkan.Core10.Handles (DescriptorPool) import Vulkan.Core10.Handles (DescriptorPool(..)) import Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits (DescriptorPoolCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo) import Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags) import Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags(..)) import Vulkan.Core10.Handles (DescriptorSet)@@ -126,7 +126,7 @@ import Vulkan.Exception (VulkanException(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlockEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_DESCRIPTOR_SET)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO))@@ -195,7 +195,7 @@                              -- structure specifying the state of the descriptor set layout object.                              (DescriptorSetLayoutCreateInfo a)                           -> -- | @pAllocator@ controls host memory allocation as described in the-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                              -- chapter.                              ("allocator" ::: Maybe AllocationCallbacks)                           -> io (DescriptorSetLayout)@@ -286,7 +286,7 @@                            -> -- | @descriptorSetLayout@ is the descriptor set layout to destroy.                               DescriptorSetLayout                            -> -- | @pAllocator@ controls host memory allocation as described in the-                              -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                              -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                               -- chapter.                               ("allocator" ::: Maybe AllocationCallbacks)                            -> io ()@@ -360,7 +360,7 @@                         -- specifying the state of the descriptor pool object.                         (DescriptorPoolCreateInfo a)                      -> -- | @pAllocator@ controls host memory allocation as described in the-                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                         -- chapter.                         ("allocator" ::: Maybe AllocationCallbacks)                      -> io (DescriptorPool)@@ -459,7 +459,7 @@                       -> -- | @descriptorPool@ is the descriptor pool to destroy.                          DescriptorPool                       -> -- | @pAllocator@ controls host memory allocation as described in the-                         -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                         -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                          -- chapter.                          ("allocator" ::: Maybe AllocationCallbacks)                       -> io ()@@ -570,18 +570,18 @@ --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' --     bit set, all descriptors in that binding that are dynamically used --     /must/ have been populated before the descriptor set is---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-binding consumed>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>. -- -- -   For descriptor set bindings created without the --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' --     bit set, all descriptors in that binding that are statically used --     /must/ have been populated before the descriptor set is---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-binding consumed>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>. -- -- -   Descriptor bindings with descriptor type of---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     /can/ be undefined when the descriptor set is---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-binding consumed>;+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>; --     though values in that block will be undefined. -- -- -   Entries that are not used by a pipeline /can/ have undefined@@ -601,7 +601,7 @@ -- Additionally, the allocation /may/ also fail if a call to -- 'allocateDescriptorSets' would cause the total number of inline uniform -- block bindings allocated from the pool to exceed the value of--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT'::@maxInlineUniformBlockBindings@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo'::@maxInlineUniformBlockBindings@ -- used to create the descriptor pool. -- -- If the allocation fails due to no more space in the descriptor pool, and@@ -808,14 +808,14 @@ -- If the @dstSet@ member of any element of @pDescriptorWrites@ or -- @pDescriptorCopies@ is bound, accessed, or modified by any command that -- was recorded to a command buffer which is currently in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>, -- and any of the descriptor bindings that are updated were not created -- with the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' -- or -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' -- bits set, that command buffer becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage --@@ -891,7 +891,7 @@ --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' --     bits set /must/ not be used by any command that was recorded to a --     command buffer which is in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --@@ -955,9 +955,9 @@ -- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the -- effective range /must/ not be larger than the maximum range for the -- descriptor type--- (<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange>+-- (<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>). -- This means that 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is not typically -- useful in the common case where uniform buffer descriptors are -- suballocated from a buffer that is much larger than@@ -985,7 +985,7 @@ --     or equal to the size of @buffer@ minus @offset@ -- -- -   #VUID-VkDescriptorBufferInfo-buffer-02998# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     feature is not enabled, @buffer@ /must/ not be --     'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -1082,11 +1082,11 @@ --     match the actual 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' of --     each subresource accessible from @imageView@ at the time this --     descriptor is accessed as defined by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-layouts-matching-rule image layout matching rules>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts-matching-rule image layout matching rules> -- -- -   #VUID-VkDescriptorImageInfo-sampler-01564# If @sampler@ is used and --     the 'Vulkan.Core10.Enums.Format.Format' of the image is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, --     the image /must/ have been created with --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT', --     and the @aspectMask@ of the @imageView@ /must/ be@@ -1191,10 +1191,10 @@ -- is used according to the descriptor type specified in the -- @descriptorType@ member of the containing 'WriteDescriptorSet' -- structure, or none of them in case @descriptorType@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- in which case the source data for the descriptor writes is taken from -- the--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- structure included in the @pNext@ chain of 'WriteDescriptorSet', or if -- @descriptorType@ is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR',@@ -1211,7 +1211,7 @@ -- below. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is enabled, the buffer, acceleration structure, imageView, or -- bufferView /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. Loads from -- a null descriptor return zero values and stores and atomics to a null@@ -1236,7 +1236,7 @@ -- Note -- -- The same behavior applies to bindings with a descriptor type of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- where @descriptorCount@ specifies the number of bytes to update while -- @dstArrayElement@ specifies the starting byte offset, thus in this case -- if the @dstBinding@ has a smaller byte size than the sum of@@ -1275,16 +1275,16 @@ --     to the number of array elements in the descriptor set binding --     specified by @dstBinding@, and all applicable consecutive bindings, --     as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02219# If @descriptorType@ --     is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @dstArrayElement@ /must/ be an integer multiple of @4@ -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02220# If @descriptorType@ --     is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @descriptorCount@ /must/ be an integer multiple of @4@ -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02994# If @descriptorType@@@ -1302,7 +1302,7 @@ --     or --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     feature is not enabled, each element of @pTexelBufferView@ /must/ --     not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -1343,15 +1343,15 @@ --     or --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT' --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     feature is not enabled, the @imageView@ member of each element of --     @pImageInfo@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02221# If @descriptorType@ --     is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     the @pNext@ chain /must/ include a---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' --     structure whose @dataSize@ member equals @descriptorCount@ -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02382# If @descriptorType@@@ -1398,7 +1398,7 @@ --     samplers for @dstBinding@, then the @imageView@ member of each --     element of @pImageInfo@ which corresponds to an immutable sampler --     that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     /must/ have been created with a --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' --     structure in its @pNext@ chain with an /identically defined/@@ -1515,28 +1515,28 @@ --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' --     the @imageLayout@ member of each element of @pImageInfo@ /must/ be a --     member of the list given in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage Sampled Image>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage Sampled Image> -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-04150# If @descriptorType@ --     is --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' --     the @imageLayout@ member of each element of @pImageInfo@ /must/ be a --     member of the list given in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler Combined Image Sampler>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler Combined Image Sampler> -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-04151# If @descriptorType@ --     is --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT' --     the @imageLayout@ member of each element of @pImageInfo@ /must/ be a --     member of the list given in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inputattachment Input Attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment Input Attachment> -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-04152# If @descriptorType@ --     is --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE' --     the @imageLayout@ member of each element of @pImageInfo@ /must/ be a --     member of the list given in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image> -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-00338# If @descriptorType@ --     is@@ -1585,7 +1585,7 @@ --     'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR', --     'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV', --     or---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- -- -   #VUID-VkWriteDescriptorSet-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -1621,14 +1621,14 @@   , -- | @dstArrayElement@ is the starting element in that array. If the     -- descriptor binding identified by @dstSet@ and @dstBinding@ has a     -- descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @dstArrayElement@ specifies the starting byte offset within the     -- binding.     dstArrayElement :: Word32   , -- | @descriptorCount@ is the number of descriptors to update. If the     -- descriptor binding identified by @dstSet@ and @dstBinding@ has a     -- descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK',     -- then @descriptorCount@ specifies the number of bytes to update.     -- Otherwise, @descriptorCount@ is one of     --@@ -1639,7 +1639,7 @@     -- -   the number of elements in @pTexelBufferView@     --     -- -   a value matching the @dataSize@ member of a-    --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+    --     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock'     --     structure in the @pNext@ chain     --     -- -   a value matching the @accelerationStructureCount@ of a@@ -1665,7 +1665,7 @@     bufferInfo :: Vector DescriptorBufferInfo   , -- | @pTexelBufferView@ is a pointer to an array of     -- 'Vulkan.Core10.Handles.BufferView' handles as described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-views Buffer Views>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views Buffer Views>     -- section or is ignored, as described below.     texelBufferView :: Vector BufferView   }@@ -1683,7 +1683,7 @@   extends _ f     | Just Refl <- eqT @e @WriteDescriptorSetAccelerationStructureNV = Just f     | Just Refl <- eqT @e @WriteDescriptorSetAccelerationStructureKHR = Just f-    | Just Refl <- eqT @e @WriteDescriptorSetInlineUniformBlockEXT = Just f+    | Just Refl <- eqT @e @WriteDescriptorSetInlineUniformBlock = Just f     | otherwise = Nothing  instance (Extendss WriteDescriptorSet es, PokeChain es) => ToCStruct (WriteDescriptorSet es) where@@ -1808,7 +1808,7 @@ --     to the number of array elements in the descriptor set binding --     specified by @srcBinding@, and all applicable consecutive bindings, --     as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- -   #VUID-VkCopyDescriptorSet-dstBinding-00347# @dstBinding@ /must/ be a --     valid binding within @dstSet@@@ -1818,7 +1818,7 @@ --     to the number of array elements in the descriptor set binding --     specified by @dstBinding@, and all applicable consecutive bindings, --     as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- -   #VUID-VkCopyDescriptorSet-dstBinding-02632# The type of @dstBinding@ --     within @dstSet@ /must/ be equal to the type of @srcBinding@ within@@ -1828,22 +1828,22 @@ --     @dstSet@, then the source and destination ranges of descriptors --     /must/ not overlap, where the ranges /may/ include array elements --     from consecutive bindings as described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- -   #VUID-VkCopyDescriptorSet-srcBinding-02223# If the descriptor type --     of the descriptor set binding specified by @srcBinding@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @srcArrayElement@ /must/ be an integer multiple of @4@ -- -- -   #VUID-VkCopyDescriptorSet-dstBinding-02224# If the descriptor type --     of the descriptor set binding specified by @dstBinding@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @dstArrayElement@ /must/ be an integer multiple of @4@ -- -- -   #VUID-VkCopyDescriptorSet-srcBinding-02225# If the descriptor type --     of the descriptor set binding specified by either @srcBinding@ or --     @dstBinding@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @descriptorCount@ /must/ be an integer multiple of @4@ -- -- -   #VUID-VkCopyDescriptorSet-srcSet-01918# If @srcSet@’s layout was@@ -1940,7 +1940,7 @@   { -- | @srcSet@, @srcBinding@, and @srcArrayElement@ are the source set,     -- binding, and array element, respectively. If the descriptor binding     -- identified by @srcSet@ and @srcBinding@ has a descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @srcArrayElement@ specifies the starting byte offset within the     -- binding to copy from.     srcSet :: DescriptorSet@@ -1951,7 +1951,7 @@   , -- | @dstSet@, @dstBinding@, and @dstArrayElement@ are the destination set,     -- binding, and array element, respectively. If the descriptor binding     -- identified by @dstSet@ and @dstBinding@ has a descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @dstArrayElement@ specifies the starting byte offset within the     -- binding to copy to.     dstSet :: DescriptorSet@@ -1965,7 +1965,7 @@     -- affect consecutive bindings in a manner similar to 'WriteDescriptorSet'     -- above. If the descriptor binding identified by @srcSet@ and @srcBinding@     -- has a descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @descriptorCount@ specifies the number of bytes to copy and the     -- remaining array elements in the source or destination binding refer to     -- the remaining number of bytes in those.@@ -2088,20 +2088,20 @@ --     of @descriptorCount@ valid 'Vulkan.Core10.Handles.Sampler' handles -- -- -   #VUID-VkDescriptorSetLayoutBinding-descriptorType-04604# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inlineUniformBlock inlineUniformBlock>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inlineUniformBlock inlineUniformBlock> --     feature is not enabled, @descriptorType@ /must/ not be---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- -- -   #VUID-VkDescriptorSetLayoutBinding-descriptorType-02209# If --     @descriptorType@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     then @descriptorCount@ /must/ be a multiple of @4@ -- -- -   #VUID-VkDescriptorSetLayoutBinding-descriptorType-02210# If --     @descriptorType@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     then @descriptorCount@ /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxInlineUniformBlockSize@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxInlineUniformBlockSize@ -- -- -   #VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283# If --     @descriptorCount@ is not @0@, @stageFlags@ /must/ be a valid@@ -2148,7 +2148,7 @@     descriptorType :: DescriptorType   , -- | @descriptorCount@ is the number of descriptors contained in the binding,     -- accessed in a shader as an array, except if @descriptorType@ is-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- in which case @descriptorCount@ is the size in bytes of the inline     -- uniform block. If @descriptorCount@ is zero this binding entry is     -- reserved and the resource /must/ not be accessed from any stage via this@@ -2251,7 +2251,7 @@ --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR', --     then all elements of @pBindings@ /must/ not have a @descriptorType@ --     of---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- -- -   #VUID-VkDescriptorSetLayoutCreateInfo-flags-00281# If @flags@ --     contains@@ -2433,7 +2433,7 @@ --     /must/ be greater than @0@ -- -- -   #VUID-VkDescriptorPoolSize-type-02218# If @type@ is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     then @descriptorCount@ /must/ be a multiple of @4@ -- -- == Valid Usage (Implicit)@@ -2451,7 +2451,7 @@     type' :: DescriptorType   , -- | @descriptorCount@ is the number of descriptors of that type to allocate.     -- If @type@ is-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @descriptorCount@ is the number of bytes to allocate for     -- descriptors of this type.     descriptorCount :: Word32@@ -2617,7 +2617,7 @@ -- -   #VUID-VkDescriptorPoolCreateInfo-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_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo' --     or --     'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE' --@@ -2670,7 +2670,7 @@   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorPoolCreateInfo e => b) -> Maybe b   extends _ f     | Just Refl <- eqT @e @MutableDescriptorTypeCreateInfoVALVE = Just f-    | Just Refl <- eqT @e @DescriptorPoolInlineUniformBlockCreateInfoEXT = Just f+    | Just Refl <- eqT @e @DescriptorPoolInlineUniformBlockCreateInfo = Just f     | otherwise = Nothing  instance (Extendss DescriptorPoolCreateInfo es, PokeChain es) => ToCStruct (DescriptorPoolCreateInfo es) where
src/Vulkan/Core10/Device.hs view
@@ -75,9 +75,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (DeviceDiagnosticsConfigCreateInfoNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (DeviceGroupDeviceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (DevicePrivateDataCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo) import Vulkan.Core10.Enums.DeviceQueueCreateFlagBits (DeviceQueueCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR) import Vulkan.Core10.Handles (Device_T) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss)@@ -112,7 +112,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)@@ -126,18 +126,18 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT)@@ -145,13 +145,13 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)@@ -168,23 +168,23 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)@@ -193,11 +193,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -248,7 +249,7 @@ -- == Valid Usage -- -- -   #VUID-vkCreateDevice-ppEnabledExtensionNames-01387# All---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions> --     for each extension in the --     'DeviceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be --     present in that list@@ -301,13 +302,13 @@              => -- | @physicalDevice@ /must/ be one of the device handles returned from a                 -- call to 'Vulkan.Core10.DeviceInitialization.enumeratePhysicalDevices'                 -- (see-                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-physical-device-enumeration Physical Device Enumeration>).+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-physical-device-enumeration Physical Device Enumeration>).                 PhysicalDevice              -> -- | @pCreateInfo@ is a pointer to a 'DeviceCreateInfo' structure containing                 -- information about how to create the device.                 (DeviceCreateInfo a)              -> -- | @pAllocator@ controls host memory allocation as described in the-                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                 -- chapter.                 ("allocator" ::: Maybe AllocationCallbacks)              -> io (Device)@@ -407,7 +408,7 @@               => -- | @device@ is the logical device to destroy.                  Device               -> -- | @pAllocator@ controls host memory allocation as described in the-                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                  -- chapter.                  ("allocator" ::: Maybe AllocationCallbacks)               -> io ()@@ -444,7 +445,7 @@ --     of @pQueuePriorities@ /must/ be between @0.0@ and @1.0@ inclusive -- -- -   #VUID-VkDeviceQueueCreateInfo-flags-02861# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-protectedMemory protected memory>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protected memory> --     feature is not enabled, the --     'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT' --     bit of @flags@ /must/ not be set@@ -462,7 +463,7 @@ -- -- -   #VUID-VkDeviceQueueCreateInfo-pNext-pNext# @pNext@ /must/ be @NULL@ --     or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_global_priority.DeviceQueueGlobalPriorityCreateInfoEXT'+--     'Vulkan.Extensions.VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR' -- -- -   #VUID-VkDeviceQueueCreateInfo-sType-unique# The @sType@ value of --     each struct in the @pNext@ chain /must/ be unique@@ -499,7 +500,7 @@   , -- | @pQueuePriorities@ is a pointer to an array of @queueCount@ normalized     -- floating point values, specifying priorities of work that will be     -- submitted to each created queue. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-priority Queue Priority>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority Queue Priority>     -- for more information.     queuePriorities :: Vector Float   }@@ -515,7 +516,7 @@   getNext DeviceQueueCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceQueueCreateInfo e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @DeviceQueueGlobalPriorityCreateInfoEXT = Just f+    | Just Refl <- eqT @e @DeviceQueueGlobalPriorityCreateInfoKHR = Just f     | otherwise = Nothing  instance (Extendss DeviceQueueCreateInfo es, PokeChain es) => ToCStruct (DeviceQueueCreateInfo es) where@@ -669,6 +670,25 @@ --     'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@shaderOutputLayer@ --     /must/ both be 'Vulkan.Core10.FundamentalTypes.TRUE' --+-- -   #VUID-VkDeviceCreateInfo-pNext-06532# If the @pNext@ chain includes+--     a 'Vulkan.Core13.PhysicalDeviceVulkan13Features' structure, then it+--     /must/ not include a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures',+--     'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures',+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',+--     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',+--     'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures',+--     'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',+--     'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures',+--     'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures',+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features',+--     'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',+--     or+--     'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures'+--     structure+-- -- -   #VUID-VkDeviceCreateInfo-pProperties-04451# If the --     @VK_KHR_portability_subset@ extension is included in @pProperties@ --     of@@ -677,63 +697,63 @@ --     @\"VK_KHR_portability_subset\"@ -- -- -   #VUID-VkDeviceCreateInfo-shadingRateImage-04478# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> --     /must/ not be enabled -- -- -   #VUID-VkDeviceCreateInfo-shadingRateImage-04479# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> --     /must/ not be enabled -- -- -   #VUID-VkDeviceCreateInfo-shadingRateImage-04480# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> --     /must/ not be enabled -- -- -   #VUID-VkDeviceCreateInfo-fragmentDensityMap-04481# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> --     /must/ not be enabled -- -- -   #VUID-VkDeviceCreateInfo-fragmentDensityMap-04482# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> --     /must/ not be enabled -- -- -   #VUID-VkDeviceCreateInfo-fragmentDensityMap-04483# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> --     /must/ not be enabled -- -- -   #VUID-VkDeviceCreateInfo-None-04896# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics> --     /must/ be enabled -- -- -   #VUID-VkDeviceCreateInfo-None-04897# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics> --     /must/ be enabled -- -- -   #VUID-VkDeviceCreateInfo-None-04898# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd> --     /must/ be enabled -- -- -   #VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax> --     is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax> --     /must/ be enabled -- -- == Valid Usage (Implicit)@@ -748,7 +768,7 @@ --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV', --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo', --     'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD',---     'Vulkan.Extensions.VK_EXT_private_data.DevicePrivateDataCreateInfoEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo', --     'Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage.PhysicalDevice16BitStorageFeatures', --     'Vulkan.Extensions.VK_EXT_4444_formats.PhysicalDevice4444FormatsFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures',@@ -773,7 +793,7 @@ --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', --     'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeaturesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',@@ -786,18 +806,18 @@ --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT', --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',---     'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT',+--     'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', --     'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',---     'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', --     'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', --     'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', --     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures', --     'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', --     'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',---     'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', --     'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', --     'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', --     'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',@@ -805,13 +825,13 @@ --     'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE', --     'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',---     'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',---     'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures', --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', --     'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',@@ -828,23 +848,23 @@ --     'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', --     'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',---     'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', --     'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', --     'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', --     'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',---     'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeaturesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures', --     'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL', --     'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures', --     'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',---     'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', --     'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV',---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', --     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',---     'Vulkan.Extensions.VK_KHR_synchronization2.PhysicalDeviceSynchronization2FeaturesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', --     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',---     'Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures', --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',@@ -853,19 +873,20 @@ --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', --     'Vulkan.Core12.PhysicalDeviceVulkan11Features', --     'Vulkan.Core12.PhysicalDeviceVulkan12Features',+--     'Vulkan.Core13.PhysicalDeviceVulkan13Features', --     'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', --     'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', --     or---     'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' -- -- -   #VUID-VkDeviceCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique, with the exception of --     structures of type --     'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceDeviceMemoryReportCreateInfoEXT' --     or---     'Vulkan.Extensions.VK_EXT_private_data.DevicePrivateDataCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo' -- -- -   #VUID-VkDeviceCreateInfo-flags-zerobitmask# @flags@ /must/ be @0@ --@@ -907,23 +928,23 @@   , -- | @pQueueCreateInfos@ is a pointer to an array of 'DeviceQueueCreateInfo'     -- structures describing the queues that are requested to be created along     -- with the logical device. Refer to the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-queue-creation Queue Creation>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queue-creation Queue Creation>     -- section below for further details.     queueCreateInfos :: Vector (SomeStruct DeviceQueueCreateInfo)   , -- | @ppEnabledLayerNames@ is deprecated and ignored. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-layers-devicelayerdeprecation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers-devicelayerdeprecation>.     enabledLayerNames :: Vector ByteString   , -- | @ppEnabledExtensionNames@ is a pointer to an array of     -- @enabledExtensionCount@ null-terminated UTF-8 strings containing the     -- names of extensions to enable for the created device. See the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions>     -- section for further details.     enabledExtensionNames :: Vector ByteString   , -- | @pEnabledFeatures@ is @NULL@ or a pointer to a     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures' structure     -- containing boolean indicators of all the features to be enabled. Refer     -- to the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features Features>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Features>     -- section for further details.     enabledFeatures :: Maybe PhysicalDeviceFeatures   }@@ -942,31 +963,31 @@     | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceSynchronization2FeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f-    | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = Just f-    | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = Just f     | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f@@ -974,13 +995,14 @@     | Just Refl <- eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVulkan13Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan11Features = Just f-    | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSeparateDepthStencilLayoutsFeatures = Just f@@ -993,7 +1015,7 @@     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceImagelessFramebufferFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeatures = Just f@@ -1032,12 +1054,12 @@     | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingFeatures = Just f     | Just Refl <- eqT @e @DeviceDeviceMemoryReportCreateInfoEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceMemoryReportFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f-    | Just Refl <- eqT @e @PhysicalDeviceMaintenance4FeaturesKHR = Just f-    | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBlendOperationAdvancedFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceProtectedMemoryFeatures = Just f@@ -1050,8 +1072,8 @@     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f     | Just Refl <- eqT @e @(PhysicalDeviceFeatures2 '[]) = Just f-    | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f-    | Just Refl <- eqT @e @DevicePrivateDataCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f+    | Just Refl <- eqT @e @DevicePrivateDataCreateInfo = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f     | otherwise = Nothing 
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -265,7 +265,7 @@ -- == Valid Usage -- -- -   #VUID-vkCreateInstance-ppEnabledExtensionNames-01388# All---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions> --     for each extension in the --     'InstanceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be --     present in that list@@ -313,7 +313,7 @@                   -- controlling creation of the instance.                   (InstanceCreateInfo a)                -> -- | @pAllocator@ controls host memory allocation as described in the-                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                   -- chapter.                   ("allocator" ::: Maybe AllocationCallbacks)                -> io (Instance)@@ -398,7 +398,7 @@                 => -- | @instance@ is the handle of the instance to destroy.                    Instance                 -> -- | @pAllocator@ controls host memory allocation as described in the-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                    -- chapter.                    ("allocator" ::: Maybe AllocationCallbacks)                 -> io ()@@ -1080,6 +1080,11 @@ -- information from the /vendor/ on how to extract the version information -- from @driverVersion@. --+-- On implementations that claim support for the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>+-- profile, the major and minor version expressed by @apiVersion@ /must/ be+-- at least Vulkan 1.3.+-- -- The @vendorID@ and @deviceID@ fields are provided to allow applications -- to adapt to device characteristics that are not adequately exposed by -- other Vulkan queries.@@ -1105,7 +1110,7 @@ -- 16 bits of @vendorID@ /must/ contain that PCI vendor ID, and the -- remaining bits /must/ be set to zero. Otherwise, the value returned -- /must/ be a valid Khronos vendor ID, obtained as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions> -- document in the section “Registering a Vendor ID with Khronos”. Khronos -- vendor IDs are allocated starting at 0x10000, to distinguish them from -- the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined@@ -1139,7 +1144,7 @@ data PhysicalDeviceProperties = PhysicalDeviceProperties   { -- | @apiVersion@ is the version of Vulkan supported by the device, encoded     -- as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.     apiVersion :: Word32   , -- | @driverVersion@ is the vendor-specified version of the driver.     driverVersion :: Word32@@ -1164,12 +1169,12 @@     pipelineCacheUUID :: ByteString   , -- | @limits@ is the 'PhysicalDeviceLimits' structure specifying     -- device-specific limits of the physical device. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits Limits>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits Limits>     -- for details.     limits :: PhysicalDeviceLimits   , -- | @sparseProperties@ is the 'PhysicalDeviceSparseProperties' structure     -- specifying various sparse related properties of the physical device. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties>     -- for details.     sparseProperties :: PhysicalDeviceSparseProperties   }@@ -1293,7 +1298,7 @@ -- -- Implicit layers /must/ be disabled if they do not support a version at -- least as high as @apiVersion@. See the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#LoaderInterfaceArchitecture “Architecture of the Vulkan Loader Interfaces”>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#LoaderInterfaceArchitecture “Architecture of the Vulkan Loader Interfaces”> -- document for additional information. -- -- Note@@ -1343,7 +1348,7 @@     engineVersion :: Word32   , -- | @apiVersion@ /must/ be the highest version of Vulkan that the     -- application is designed to use, encoded as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.     -- The patch version number specified in @apiVersion@ is ignored when     -- creating an instance object. Only the major and minor versions of the     -- instance /must/ match those requested in @apiVersion@.@@ -1492,7 +1497,7 @@     -- listed in this array, with the first array element being the closest to     -- the application, and the last array element being the closest to the     -- driver. See the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-layers>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers>     -- section for further details.     enabledLayerNames :: Vector ByteString   , -- | @ppEnabledExtensionNames@ is a pointer to an array of@@ -1637,11 +1642,11 @@ -- families /may/ be (0,0,0). -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device Device Memory>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device Device Memory> -- section describes memory properties queried from the physical device. -- -- For physical device feature queries see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Features> -- chapter. -- -- = See Also@@ -1661,10 +1666,11 @@     queueCount :: Word32   , -- | @timestampValidBits@ is the unsigned integer count of meaningful bits in     -- the timestamps written via-    -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' or-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'. The valid range-    -- for the count is 36..64 bits, or a value of 0, indicating no support for-    -- timestamps. Bits outside the valid range are guaranteed to be zeros.+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+    -- or 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'. The valid+    -- range for the count is 36..64 bits, or a value of 0, indicating no+    -- support for timestamps. Bits outside the valid range are guaranteed to+    -- be zeros.     timestampValidBits :: Word32   , -- | @minImageTransferGranularity@ is the minimum granularity supported for     -- image transfer operations on the queues in this queue family.@@ -1896,7 +1902,7 @@ -- type with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT' -- bit set in its @propertyFlags@. If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory> -- feature is enabled, there /must/ be at least one memory type with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD' -- bit set in its @propertyFlags@.@@ -1924,7 +1930,7 @@ -- the case their @propertyFlags@ members are not in a subset relation. -- That potentially allows more than one possible way to order the same set -- of memory types. Notice that the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations> -- is written in a valid order. But if instead -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT' -- was before@@ -2237,7 +2243,7 @@ -- = Members -- -- -   @maxExtent@ are the maximum image dimensions. See the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values> --     section below for how these values are constrained by @type@. -- -- -   @maxMipLevels@ is the maximum number of mipmap levels.@@ -2261,7 +2267,7 @@ --         member for which mipmap image support is not required -- --     -   image @format@ is one of the---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion> -- --     -   @flags@ contains --         'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'@@ -2280,7 +2286,7 @@ --         @type@ is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' -- --     -   @format@ is one of the---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion> -- -- -   If @tiling@ is --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',@@ -2290,7 +2296,7 @@ --     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' --     specifying all the supported sample counts for this image as --     described---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-supported-sample-counts below>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts below>. -- -- -   @maxResourceSize@ is an upper bound on the total image size in --     bytes, inclusive of all image subresources. Implementations /may/@@ -2433,7 +2439,7 @@     --         so all accesses through such pointers are considered to be out     --         of bounds. Buffer accesses through buffer device addresses are     --         not bounds-checked. If the-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess cooperativeMatrixRobustBufferAccess>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess cooperativeMatrixRobustBufferAccess>     --         feature is not enabled, then accesses using     --         @OpCooperativeMatrixLoadNV@ and @OpCooperativeMatrixStoreNV@     --         /may/ not be bounds-checked.@@ -2446,7 +2452,7 @@     --         the end are not statically used.     --     --     -   If-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is not enabled and any buffer access is determined to be out of     --         bounds, then any other access of the same type (load, store, or     --         atomic) to the same buffer that accesses an address less than 16@@ -2470,31 +2476,31 @@     -- -   Out-of-bounds buffer loads will return any of the following values:     --     --     -   If the access is to a uniform buffer and-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is enabled, loads of offsets between the end of the descriptor     --         range and the end of the descriptor range rounded up to a     --         multiple of-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>     --         bytes /must/ return either zero values or the contents of the     --         memory at the offset being loaded. Loads of offsets past the     --         descriptor range rounded up to a multiple of-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>     --         bytes /must/ return zero values.     --     --     -   If the access is to a storage buffer and-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is enabled, loads of offsets between the end of the descriptor     --         range and the end of the descriptor range rounded up to a     --         multiple of-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>     --         bytes /must/ return either zero values or the contents of the     --         memory at the offset being loaded. Loads of offsets past the     --         descriptor range rounded up to a multiple of-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>     --         bytes /must/ return zero values. Similarly, stores to addresses     --         between the end of the descriptor range and the end of the     --         descriptor range rounded up to a multiple of-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>     --         bytes /may/ be discarded.     --     --     -   Non-atomic accesses to storage buffers that are a multiple of 32@@ -2502,14 +2508,14 @@     --         individually bounds-checked.     --     --     -   If the access is to an index buffer and-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is enabled, zero values /must/ be returned.     --     --     -   If the access is to a uniform texel buffer or storage texel     --         buffer and-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is enabled, zero values /must/ be returned, and then-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>     --         is applied based on the buffer view’s format.     --     --     -   Values from anywhere within the memory range(s) bound to the@@ -2529,7 +2535,7 @@     --     bound to the buffer, but /must/ not modify any other memory.     --     --     -   If-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is enabled, out of bounds writes /must/ not modify any memory.     --     -- -   Out-of-bounds atomics /may/ modify values within the memory range(s)@@ -2537,12 +2543,12 @@     --     return an undefined value.     --     --     -   If-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --         is enabled, out of bounds atomics /must/ not modify any memory,     --         and return an undefined value.     --     -- -   If-    --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --     is disabled, vertex input attributes are considered out of bounds if     --     the offset of the attribute in the bound vertex buffer range plus     --     the size of the attribute is greater than either:@@ -2572,14 +2578,14 @@     --         -   Zero values, or (0,0,0,x) vectors, as described above.     --     -- -   If-    --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    --     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     --     is enabled, vertex input attributes are considered out of bounds if     --     the offset of the attribute in the bound vertex buffer range plus     --     the size of the attribute is greater than the byte size of the     --     memory range bound to the vertex buffer binding.     --     --     -   If a vertex input attribute is out of bounds, the-    --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction raw data>+    --         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction raw data>     --         extracted are zero values, and missing G, B, or A components are     --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.     --@@ -2596,7 +2602,7 @@     -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32'). If this feature is     -- supported, @maxDrawIndexedIndexValue@ /must/ be 232-1; otherwise it     -- /must/ be no smaller than 224-1. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.     fullDrawIndexUint32 :: Bool   , -- | #features-imageCubeArray# @imageCubeArray@ specifies whether image views     -- with a 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of@@ -2632,7 +2638,7 @@     -- modules /can/ declare the @Tessellation@ capability.     tessellationShader :: Bool   , -- | #features-sampleRateShading# @sampleRateShading@ specifies whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>     -- and multisample interpolation are supported. If this feature is not     -- enabled, the @sampleShadingEnable@ member of the     -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' structure@@ -2647,7 +2653,7 @@     -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', and     -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' enum     -- values /must/ not be used as source or destination blending factors. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>.     dualSrcBlend :: Bool   , -- | #features-logicOp# @logicOp@ specifies whether logic operations are     -- supported. If this feature is not enabled, the @logicOpEnable@ member of@@ -2663,7 +2669,7 @@     -- /must/ be 0 or 1. The @maxDrawIndirectCount@ member of the     -- 'PhysicalDeviceLimits' structure /must/ also be 1 if this feature is not     -- supported. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.     multiDrawIndirect :: Bool   , -- | #features-drawIndirectFirstInstance# @drawIndirectFirstInstance@     -- specifies whether indirect drawing calls support the @firstInstance@@@ -2732,7 +2738,7 @@   , -- | #features-alphaToOne# @alphaToOne@ specifies whether the implementation     -- is able to replace the alpha value of the fragment shader color output     -- in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-covg Multisample Coverage>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>     -- fragment operation. If this feature is not enabled, then the     -- @alphaToOneEnable@ member of the     -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' structure@@ -2977,9 +2983,9 @@     -- evaluation shaders, or if the shader modules /can/ declare the     -- @GeometryPointSize@ capability for geometry shaders. An implementation     -- supporting this feature /must/ also support one or both of the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>     -- or-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>     -- features.     shaderTessellationAndGeometryPointSize :: Bool   , -- | #features-shaderImageGatherExtended# @shaderImageGatherExtended@@@ -3060,7 +3066,7 @@     -- 'Vulkan.Core10.Enums.Format.FORMAT_R32G32_SFLOAT' from     -- @StorageImageExtendedFormats@ SPIR-V capability, are already covered by     -- core Vulkan-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>.     shaderStorageImageExtendedFormats :: Bool   , -- | #features-shaderStorageImageMultisample# @shaderStorageImageMultisample@     -- specifies whether multisampled storage images are supported. If this@@ -3077,7 +3083,7 @@     -- require a format qualifier to be specified when reading.     -- @shaderStorageImageReadWithoutFormat@ applies only to formats listed in     -- the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>     -- list.     shaderStorageImageReadWithoutFormat :: Bool   , -- | #features-shaderStorageImageWriteWithoutFormat#@@ -3085,7 +3091,7 @@     -- require a format qualifier to be specified when writing.     -- @shaderStorageImageWriteWithoutFormat@ applies only to formats listed in     -- the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>     -- list.     shaderStorageImageWriteWithoutFormat :: Bool   , -- | #features-shaderUniformBufferArrayDynamicIndexing#@@ -3199,7 +3205,7 @@     -- set in the @flags@ member of the 'Vulkan.Core10.Buffer.BufferCreateInfo'     -- and 'Vulkan.Core10.Image.ImageCreateInfo' structures, respectively.     -- Otherwise resource memory /can/ be managed as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>.     sparseBinding :: Bool   , -- | #features-sparseResidencyBuffer# @sparseResidencyBuffer@ specifies     -- whether the device /can/ access partially resident buffers. If this@@ -3283,7 +3289,7 @@     sparseResidencyAliased :: Bool   , -- | #features-variableMultisampleRate# @variableMultisampleRate@ specifies     -- whether all pipelines that will be bound to a command buffer during a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>     -- /must/ have the same value for     -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@.     -- If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation@@ -3558,7 +3564,7 @@     -- if the physical device will access all single-sample 2D sparse resources     -- using the standard sparse image block shapes (based on image format), as     -- described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>     -- table. If this property is not supported the value returned in the     -- @imageGranularity@ member of the     -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'@@ -3569,7 +3575,7 @@     -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the physical device will access     -- all multisample 2D sparse resources using the standard sparse image     -- block shapes (based on image format), as described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)>     -- table. If this property is not supported, the value returned in the     -- @imageGranularity@ member of the     -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'@@ -3580,7 +3586,7 @@     -- if the physical device will access all 3D sparse resources using the     -- standard sparse image block shapes (based on image format), as described     -- in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>     -- table. If this property is not supported, the value returned in the     -- @imageGranularity@ member of the     -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'@@ -3756,7 +3762,7 @@     -- granularity, in bytes, at which buffer or linear image resources, and     -- optimal image resources /can/ be bound to adjacent offsets in the same     -- 'Vulkan.Core10.Handles.DeviceMemory' object without aliasing. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity>     -- for more details.     bufferImageGranularity :: DeviceSize   , -- | #limits-sparseAddressSpaceSize# @sparseAddressSpaceSize@ is the total@@ -3769,7 +3775,7 @@     -- pipeline. All 'Vulkan.Core10.Handles.DescriptorSet' decorations in     -- shader modules /must/ have a value less than @maxBoundDescriptorSets@.     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sets>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sets>.     maxBoundDescriptorSets :: Word32   , -- | #limits-maxPerStageDescriptorSamplers# @maxPerStageDescriptorSamplers@     -- is the maximum number of samplers that /can/ be accessible to a single@@ -3783,9 +3789,9 @@     -- stage when the @stageFlags@ member of the     -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has     -- the bit for that shader stage set. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampler>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.     maxPerStageDescriptorSamplers :: Word32   , -- | #limits-maxPerStageDescriptorUniformBuffers#     -- @maxPerStageDescriptorUniformBuffers@ is the maximum number of uniform@@ -3800,9 +3806,9 @@     -- stage when the @stageFlags@ member of the     -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has     -- the bit for that shader stage set. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.     maxPerStageDescriptorUniformBuffers :: Word32   , -- | #limits-maxPerStageDescriptorStorageBuffers#     -- @maxPerStageDescriptorStorageBuffers@ is the maximum number of storage@@ -3817,9 +3823,9 @@     -- pipeline shader stage when the @stageFlags@ member of the     -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has     -- the bit for that shader stage set. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.     maxPerStageDescriptorStorageBuffers :: Word32   , -- | #limits-maxPerStageDescriptorSampledImages#     -- @maxPerStageDescriptorSampledImages@ is the maximum number of sampled@@ -3835,10 +3841,10 @@     -- pipeline shader stage when the @stageFlags@ member of the     -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has     -- the bit for that shader stage set. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.     maxPerStageDescriptorSampledImages :: Word32   , -- | #limits-maxPerStageDescriptorStorageImages#     -- @maxPerStageDescriptorStorageImages@ is the maximum number of storage@@ -3853,9 +3859,9 @@     -- pipeline shader stage when the @stageFlags@ member of the     -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has     -- the bit for that shader stage set. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.     maxPerStageDescriptorStorageImages :: Word32   , -- | #limits-maxPerStageDescriptorInputAttachments#     -- @maxPerStageDescriptorInputAttachments@ is the maximum number of input@@ -3870,7 +3876,7 @@     -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has     -- the bit for that shader stage set. These are only supported for the     -- fragment stage. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inputattachment>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.     maxPerStageDescriptorInputAttachments :: Word32   , -- | #limits-maxPerStageResources# @maxPerStageResources@ is the maximum     -- number of resources that /can/ be accessible to a single shader stage in@@ -3900,9 +3906,9 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampler>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.     maxDescriptorSetSamplers :: Word32   , -- | #limits-maxDescriptorSetUniformBuffers# @maxDescriptorSetUniformBuffers@     -- is the maximum number of uniform buffers that /can/ be included in a@@ -3913,9 +3919,9 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.     maxDescriptorSetUniformBuffers :: Word32   , -- | #limits-maxDescriptorSetUniformBuffersDynamic#     -- @maxDescriptorSetUniformBuffersDynamic@ is the maximum number of dynamic@@ -3926,7 +3932,7 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.     maxDescriptorSetUniformBuffersDynamic :: Word32   , -- | #limits-maxDescriptorSetStorageBuffers# @maxDescriptorSetStorageBuffers@     -- is the maximum number of storage buffers that /can/ be included in a@@ -3937,9 +3943,9 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.     maxDescriptorSetStorageBuffers :: Word32   , -- | #limits-maxDescriptorSetStorageBuffersDynamic#     -- @maxDescriptorSetStorageBuffersDynamic@ is the maximum number of dynamic@@ -3950,7 +3956,7 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.     maxDescriptorSetStorageBuffersDynamic :: Word32   , -- | #limits-maxDescriptorSetSampledImages# @maxDescriptorSetSampledImages@     -- is the maximum number of sampled images that /can/ be included in a@@ -3962,10 +3968,10 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.     maxDescriptorSetSampledImages :: Word32   , -- | #limits-maxDescriptorSetStorageImages# @maxDescriptorSetStorageImages@     -- is the maximum number of storage images that /can/ be included in a@@ -3976,9 +3982,9 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.     maxDescriptorSetStorageImages :: Word32   , -- | #limits-maxDescriptorSetInputAttachments#     -- @maxDescriptorSetInputAttachments@ is the maximum number of input@@ -3989,7 +3995,7 @@     -- created without the     -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'     -- bit set count against this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inputattachment>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.     maxDescriptorSetInputAttachments :: Word32   , -- | #limits-maxVertexInputAttributes# @maxVertexInputAttributes@ is the     -- maximum number of vertex input attributes that /can/ be specified for a@@ -3999,9 +4005,9 @@     -- @pVertexAttributeDescriptions@ member of the     -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-attrib>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-attrib>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.     maxVertexInputAttributes :: Word32   , -- | #limits-maxVertexInputBindings# @maxVertexInputBindings@ is the maximum     -- number of vertex buffers that /can/ be specified for providing vertex@@ -4013,31 +4019,31 @@     -- The @binding@ member of     -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' /must/ be less     -- than this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.     maxVertexInputBindings :: Word32   , -- | #limits-maxVertexInputAttributeOffset# @maxVertexInputAttributeOffset@     -- is the maximum vertex input attribute offset that /can/ be added to the     -- vertex input binding stride. The @offset@ member of the     -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription' structure     -- /must/ be less than or equal to this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.     maxVertexInputAttributeOffset :: Word32   , -- | #limits-maxVertexInputBindingStride# @maxVertexInputBindingStride@ is     -- the maximum vertex input binding stride that /can/ be specified in a     -- vertex input binding. The @stride@ member of the     -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' structure /must/     -- be less than or equal to this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.     maxVertexInputBindingStride :: Word32   , -- | #limits-maxVertexOutputComponents# @maxVertexOutputComponents@ is the     -- maximum number of components of output variables which /can/ be output     -- by a vertex shader. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-vertex>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex>.     maxVertexOutputComponents :: Word32   , -- | #limits-maxTessellationGenerationLevel# @maxTessellationGenerationLevel@     -- is the maximum tessellation generation level supported by the     -- fixed-function tessellation primitive generator. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.     maxTessellationGenerationLevel :: Word32   , -- | #limits-maxTessellationPatchSize# @maxTessellationPatchSize@ is the     -- maximum patch size, in vertices, of patches that /can/ be processed by@@ -4047,7 +4053,7 @@     -- specified at pipeline creation time and the value provided in the     -- @OutputVertices@ execution mode of shader modules /must/ be less than or     -- equal to this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.     maxTessellationPatchSize :: Word32   , -- | #limits-maxTessellationControlPerVertexInputComponents#     -- @maxTessellationControlPerVertexInputComponents@ is the maximum number@@ -4083,7 +4089,7 @@     -- the maximum invocation count supported for instanced geometry shaders.     -- The value provided in the @Invocations@ execution mode of shader modules     -- /must/ be less than or equal to this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry>.     maxGeometryShaderInvocations :: Word32   , -- | #limits-maxGeometryInputComponents# @maxGeometryInputComponents@ is the     -- maximum number of components of input variables which /can/ be provided@@ -4114,15 +4120,15 @@     -- is the maximum number of output attachments which /can/ be written to by     -- the fragment shader stage when blending is enabled and one of the dual     -- source blend modes is in use. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.     maxFragmentDualSrcAttachments :: Word32   , -- | #limits-maxFragmentCombinedOutputResources#     -- @maxFragmentCombinedOutputResources@ is the total number of storage     -- buffers, storage images, and output @Location@ decorated color     -- attachments (described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)     -- which /can/ be used in the fragment shader stage.     maxFragmentCombinedOutputResources :: Word32   , -- | #limits-maxComputeSharedMemorySize# @maxComputeSharedMemorySize@ is the@@ -4139,7 +4145,7 @@     -- non-Block variables declared with @Workgroup@ storage class were     -- assigned offsets in an arbitrary order by successively taking the     -- smallest valid offset according to the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout>     -- rules. (This is equivalent to using the GLSL std430 layout rules.)     maxComputeSharedMemorySize :: Word32   , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the@@ -4148,7 +4154,7 @@     -- local workgroups for the X, Y, and Z dimensions, respectively. The     -- workgroup count parameters to the dispatching commands /must/ be less     -- than or equal to the corresponding limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dispatch>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch>.     maxComputeWorkGroupCount :: (Word32, Word32, Word32)   , -- | #limits-maxComputeWorkGroupInvocations# @maxComputeWorkGroupInvocations@     -- is the maximum total number of compute shader invocations in a single@@ -4167,7 +4173,7 @@     maxComputeWorkGroupSize :: (Word32, Word32, Word32)   , -- | #limits-subPixelPrecisionBits# @subPixelPrecisionBits@ is the number of     -- bits of subpixel precision in framebuffer coordinates xf and yf. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>.     subPixelPrecisionBits :: Word32   , -- | #limits-subTexelPrecisionBits# @subTexelPrecisionBits@ is the number of     -- bits of precision in the division along an axis of an image used for@@ -4186,11 +4192,11 @@     -- maximum index value that /can/ be used for indexed draw calls when using     -- 32-bit indices. This excludes the primitive restart index value of     -- 0xFFFFFFFF. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>.     maxDrawIndexedIndexValue :: Word32   , -- | #limits-maxDrawIndirectCount# @maxDrawIndirectCount@ is the maximum draw     -- count that is supported for indirect drawing calls. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>.     maxDrawIndirectCount :: Word32   , -- | #limits-maxSamplerLodBias# @maxSamplerLodBias@ is the maximum absolute     -- sampler LOD bias. The sum of the @mipLodBias@ member of the@@ -4198,14 +4204,14 @@     -- operand of image sampling operations in shader modules (or 0 if no     -- @Bias@ operand is provided to an image sampling operation) are clamped     -- to the range [-@maxSamplerLodBias@,+@maxSamplerLodBias@]. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-mipLodBias>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias>.     maxSamplerLodBias :: Float   , -- | #limits-maxSamplerAnisotropy# @maxSamplerAnisotropy@ is the maximum     -- degree of sampler anisotropy. The maximum degree of anisotropic     -- filtering used for an image sampling operation is the minimum of the     -- @maxAnisotropy@ member of the 'Vulkan.Core10.Sampler.SamplerCreateInfo'     -- structure and this limit. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-maxAnisotropy>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-maxAnisotropy>.     maxSamplerAnisotropy :: Float   , -- | #limits-maxViewports# @maxViewports@ is the maximum number of active     -- viewports. The @viewportCount@ member of the@@ -4218,14 +4224,14 @@     -- respectively. The maximum viewport dimensions /must/ be greater than or     -- equal to the largest image which /can/ be created and used as a     -- framebuffer attachment. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.     maxViewportDimensions :: (Word32, Word32)   , -- | #limits-viewportboundsrange# @viewportBoundsRange@[2] is the [minimum,     -- maximum] range that the corners of a viewport /must/ be contained in.     -- This range /must/ be at least [-2 × @size@, 2 × @size@ - 1], where     -- @size@ = max(@maxViewportDimensions@[0], @maxViewportDimensions@[1]).     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.     --     -- Note     --@@ -4249,26 +4255,26 @@     -- 'Vulkan.Core10.Memory.mapMemory', subtracting @offset@ bytes from the     -- returned pointer will always produce an integer multiple of this limit.     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-hostaccess>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess>.     -- The value /must/ be a power of two.     minMemoryMapAlignment :: Word64   , -- | #limits-minTexelBufferOffsetAlignment# @minTexelBufferOffsetAlignment@     -- is the minimum /required/ alignment, in bytes, for the @offset@ member     -- of the 'Vulkan.Core10.BufferView.BufferViewCreateInfo' structure for     -- texel buffers. The value /must/ be a power of two. If-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>     -- is enabled, this limit is equivalent to the maximum of the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>     -- members of-    -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+    -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',     -- but smaller alignment is /optionally/ allowed by-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.     -- If-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>     -- is not enabled,     -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@offset@ /must/ be a     -- multiple of this value.@@ -4345,7 +4351,7 @@     -- the color sample counts that are supported for all framebuffer color     -- attachments with floating- or fixed-point formats. For color attachments     -- with integer formats, see-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>.     framebufferColorSampleCounts :: SampleCountFlags   , -- | #limits-framebufferDepthSampleCounts# @framebufferDepthSampleCounts@ is     -- a bitmask1 of@@ -4363,7 +4369,7 @@     -- @framebufferNoAttachmentsSampleCounts@ is a bitmask1 of     -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating     -- the supported sample counts for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>.     framebufferNoAttachmentsSampleCounts :: SampleCountFlags   , -- | #limits-maxColorAttachments# @maxColorAttachments@ is the maximum number     -- of color attachments that /can/ be used by a subpass in a render pass.@@ -4428,11 +4434,11 @@     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' in the     -- 'QueueFamilyProperties'::@queueFlags@ support     -- 'QueueFamilyProperties'::@timestampValidBits@ of at least 36. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.     timestampComputeAndGraphics :: Bool   , -- | #limits-timestampPeriod# @timestampPeriod@ is the number of nanoseconds     -- /required/ for a timestamp query to be incremented by 1. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.     timestampPeriod :: Float   , -- | #limits-maxClipDistances# @maxClipDistances@ is the maximum number of     -- clip distances that /can/ be used in a single shader stage. The size of@@ -4457,7 +4463,7 @@     -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@. This     -- /must/ be at least 2, and levels /must/ be spread evenly over the range,     -- with at least one level at 1.0, and another at 0.0. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-priority>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority>.     discreteQueuePriorities :: Word32   , -- | #limits-pointSizeRange# @pointSizeRange@[2] is the range     -- [@minimum@,@maximum@] of supported sizes for points. Values written to@@ -4487,12 +4493,12 @@     -- 'Vulkan.Core10.FundamentalTypes.FALSE', lines /may/ be rasterized under     -- a relaxed set of rules. If set to 'Vulkan.Core10.FundamentalTypes.TRUE',     -- lines are rasterized as per the strict definition. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.     strictLines :: Bool   , -- | #limits-standardSampleLocations# @standardSampleLocations@ specifies     -- whether rasterization uses the standard sample locations as documented     -- in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling Multisampling>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling Multisampling>.     -- If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation uses     -- the documented sample locations. If set to     -- 'Vulkan.Core10.FundamentalTypes.FALSE', the implementation /may/ use@@ -4501,10 +4507,10 @@   , -- | #limits-optimalBufferCopyOffsetAlignment#     -- @optimalBufferCopyOffsetAlignment@ is the optimal buffer offset     -- alignment in bytes for-    -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2',     -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',-    -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', and-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',+    -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per     -- texel alignment requirements are enforced, but applications /should/ use     -- the optimal alignment for optimal performance and power use. The value     -- /must/ be a power of two.@@ -4512,19 +4518,19 @@   , -- | #limits-optimalBufferCopyRowPitchAlignment#     -- @optimalBufferCopyRowPitchAlignment@ is the optimal buffer row pitch     -- alignment in bytes for-    -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2',     -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',-    -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', and-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row pitch is-    -- the number of bytes between texels with the same X coordinate in-    -- adjacent rows (Y coordinates differ by one). The per texel alignment+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',+    -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row+    -- pitch is the number of bytes between texels with the same X coordinate+    -- in adjacent rows (Y coordinates differ by one). The per texel alignment     -- requirements are enforced, but applications /should/ use the optimal     -- alignment for optimal performance and power use. The value /must/ be a     -- power of two.     optimalBufferCopyRowPitchAlignment :: DeviceSize   , -- | #limits-nonCoherentAtomSize# @nonCoherentAtomSize@ is the size and     -- alignment in bytes that bounds concurrent access to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>.     -- The value /must/ be a power of two.     --     -- [1]@@ -4534,7 +4540,7 @@     --     sample counts for each image type. Individual images /may/ support     --     additional sample counts, which are queried using     --     'getPhysicalDeviceImageFormatProperties' as described in-    --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>.+    --     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>.     nonCoherentAtomSize :: DeviceSize   }   deriving (Typeable, Eq)
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -18,7 +18,6 @@                                                            , ACCESS_HOST_WRITE_BIT                                                            , ACCESS_MEMORY_READ_BIT                                                            , ACCESS_MEMORY_WRITE_BIT-                                                           , ACCESS_NONE_KHR                                                            , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV                                                            , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV                                                            , ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR@@ -30,6 +29,7 @@                                                            , ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT                                                            , ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT                                                            , ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT+                                                           , ACCESS_NONE                                                            , ..                                                            )                                            ) where@@ -53,12 +53,12 @@ -- = Description -- -- These values all have the same meaning as the equivalently named values--- for 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlags2KHR'.+-- for 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'. -- -- Certain access types are only performed by a subset of pipeline stages. -- Any synchronization command that takes both stage masks and access masks -- uses both to define the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes> -- - only the specified access types performed by the specified stages are -- included in the access scope. An application /must/ not specify an -- access flag in a synchronization command if it does not include a@@ -66,108 +66,108 @@ -- accesses of that type. The following table lists, for each access flag, -- which pipeline stages /can/ perform that type of access. ----- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | Access flag                                                                          | Supported pipeline stages                                                                           |--- +======================================================================================+=====================================================================================================+--- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_INDEX_READ_BIT'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_UNIFORM_READ_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_READ_BIT'                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_WRITE_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                                   | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or         |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_READ_BIT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_WRITE_BIT'                                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_READ_BIT'                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_WRITE_BIT'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_READ_BIT'                                                             | Any                                                                                                 |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_WRITE_BIT'                                                            | Any                                                                                                 |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'             |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |--- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | Access flag                                                                 | Supported pipeline stages                                                                           |+-- +=============================================================================+=====================================================================================================++-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INDEX_READ_BIT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_UNIFORM_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_READ_BIT'                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_WRITE_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                          | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or           |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_READ_BIT'                                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_WRITE_BIT'                                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_READ_BIT'                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_WRITE_BIT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_READ_BIT'                                                    | Any                                                                                                 |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_WRITE_BIT'                                                   | Any                                                                                                 |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'               |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |+-- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- -- Supported access types --@@ -183,153 +183,151 @@ -- dispatching command. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' -- pipeline stage.-pattern ACCESS_INDIRECT_COMMAND_READ_BIT            = AccessFlagBits 0x00000001+pattern ACCESS_INDIRECT_COMMAND_READ_BIT          = AccessFlagBits 0x00000001 -- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part -- of an indexed drawing command, bound by -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access -- occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' -- pipeline stage.-pattern ACCESS_INDEX_READ_BIT                       = AccessFlagBits 0x00000002+pattern ACCESS_INDEX_READ_BIT                     = AccessFlagBits 0x00000002 -- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex -- buffer as part of a drawing command, bound by -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access -- occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' -- pipeline stage.-pattern ACCESS_VERTEX_ATTRIBUTE_READ_BIT            = AccessFlagBits 0x00000004+pattern ACCESS_VERTEX_ATTRIBUTE_READ_BIT          = AccessFlagBits 0x00000004 -- | 'ACCESS_UNIFORM_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer> -- in any shader pipeline stage.-pattern ACCESS_UNIFORM_READ_BIT                     = AccessFlagBits 0x00000008+pattern ACCESS_UNIFORM_READ_BIT                   = AccessFlagBits 0x00000008 -- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' specifies read access to an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment> -- within a render pass during subpass shading or fragment shading. Such -- access occurs in the--- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' -- pipeline stage.-pattern ACCESS_INPUT_ATTACHMENT_READ_BIT            = AccessFlagBits 0x00000010+pattern ACCESS_INPUT_ATTACHMENT_READ_BIT          = AccessFlagBits 0x00000010 -- | 'ACCESS_SHADER_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table shader binding table>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage.-pattern ACCESS_SHADER_READ_BIT                      = AccessFlagBits 0x00000020+pattern ACCESS_SHADER_READ_BIT                    = AccessFlagBits 0x00000020 -- | 'ACCESS_SHADER_WRITE_BIT' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage.-pattern ACCESS_SHADER_WRITE_BIT                     = AccessFlagBits 0x00000040+pattern ACCESS_SHADER_WRITE_BIT                   = AccessFlagBits 0x00000040 -- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>, -- such as via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>, -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- It does not include--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage.-pattern ACCESS_COLOR_ATTACHMENT_READ_BIT            = AccessFlagBits 0x00000080+pattern ACCESS_COLOR_ATTACHMENT_READ_BIT          = AccessFlagBits 0x00000080 -- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment> -- during a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass render pass>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage.-pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT           = AccessFlagBits 0x00000100+pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT         = AccessFlagBits 0x00000100 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' -- pipeline stages.-pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT    = AccessFlagBits 0x00000200+pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT  = AccessFlagBits 0x00000200 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' -- pipeline stages.-pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT   = AccessFlagBits 0x00000400+pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000400 -- | 'ACCESS_TRANSFER_READ_BIT' specifies read access to an image or buffer -- in a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the--- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT' -- pipeline stage.-pattern ACCESS_TRANSFER_READ_BIT                    = AccessFlagBits 0x00000800+pattern ACCESS_TRANSFER_READ_BIT                  = AccessFlagBits 0x00000800 -- | 'ACCESS_TRANSFER_WRITE_BIT' specifies write access to an image or buffer -- in a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the--- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT' -- pipeline stage.-pattern ACCESS_TRANSFER_WRITE_BIT                   = AccessFlagBits 0x00001000+pattern ACCESS_TRANSFER_WRITE_BIT                 = AccessFlagBits 0x00001000 -- | 'ACCESS_HOST_READ_BIT' specifies read access by a host operation. -- Accesses of this type are not performed through a resource, but directly -- on memory. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' -- pipeline stage.-pattern ACCESS_HOST_READ_BIT                        = AccessFlagBits 0x00002000+pattern ACCESS_HOST_READ_BIT                      = AccessFlagBits 0x00002000 -- | 'ACCESS_HOST_WRITE_BIT' specifies write access by a host operation. -- Accesses of this type are not performed through a resource, but directly -- on memory. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' -- pipeline stage.-pattern ACCESS_HOST_WRITE_BIT                       = AccessFlagBits 0x00004000+pattern ACCESS_HOST_WRITE_BIT                     = AccessFlagBits 0x00004000 -- | 'ACCESS_MEMORY_READ_BIT' specifies all read accesses. It is always valid -- in any access mask, and is treated as equivalent to setting all @READ@ -- access flags that are valid where it is used.-pattern ACCESS_MEMORY_READ_BIT                      = AccessFlagBits 0x00008000+pattern ACCESS_MEMORY_READ_BIT                    = AccessFlagBits 0x00008000 -- | 'ACCESS_MEMORY_WRITE_BIT' specifies all write accesses. It is always -- valid in any access mask, and is treated as equivalent to setting all -- @WRITE@ access flags that are valid where it is used.-pattern ACCESS_MEMORY_WRITE_BIT                     = AccessFlagBits 0x00010000--- | 'ACCESS_NONE_KHR' specifies no accesses.-pattern ACCESS_NONE_KHR                             = AccessFlagBits 0x00000000+pattern ACCESS_MEMORY_WRITE_BIT                   = AccessFlagBits 0x00010000 -- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the target -- command buffer:VkBuffer preprocess outputs in -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' -- pipeline stage.-pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV      = AccessFlagBits 0x00040000+pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV    = AccessFlagBits 0x00040000 -- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer -- inputs to -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' -- pipeline stage.-pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_NV       = AccessFlagBits 0x00020000+pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_NV     = AccessFlagBits 0x00020000 -- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read -- access to a fragment shading rate attachment during rasterization. Such -- access occurs in the@@ -337,16 +335,16 @@ -- pipeline stage. pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits 0x00800000 -- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations> -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- pipeline stage.-pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT    = AccessFlagBits 0x01000000+pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT  = AccessFlagBits 0x01000000 -- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to -- an acceleration structure or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer> -- as part of a build or copy command. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage.@@ -354,18 +352,18 @@ -- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to an -- acceleration structure as part of a trace, build, or copy command, or to -- an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer> -- as part of a build command. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' -- pipeline stage or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage.-pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR  = AccessFlagBits 0x00200000+pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits 0x00200000 -- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read access -- to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachments>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>, -- including--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage.@@ -374,7 +372,7 @@ -- predicate as part of conditional rendering. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- pipeline stage.-pattern ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT   = AccessFlagBits 0x00100000+pattern ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits 0x00100000 -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write access -- to a transform feedback counter buffer which is written when -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'@@ -394,7 +392,9 @@ -- access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- pipeline stage.-pattern ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT     = AccessFlagBits 0x02000000+pattern ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT   = AccessFlagBits 0x02000000+-- | 'ACCESS_NONE' specifies no accesses.+pattern ACCESS_NONE                               = AccessFlagBits 0x00000000  conNameAccessFlagBits :: String conNameAccessFlagBits = "AccessFlagBits"@@ -404,35 +404,35 @@  showTableAccessFlagBits :: [(AccessFlagBits, String)] showTableAccessFlagBits =-  [ (ACCESS_INDIRECT_COMMAND_READ_BIT           , "INDIRECT_COMMAND_READ_BIT")-  , (ACCESS_INDEX_READ_BIT                      , "INDEX_READ_BIT")-  , (ACCESS_VERTEX_ATTRIBUTE_READ_BIT           , "VERTEX_ATTRIBUTE_READ_BIT")-  , (ACCESS_UNIFORM_READ_BIT                    , "UNIFORM_READ_BIT")-  , (ACCESS_INPUT_ATTACHMENT_READ_BIT           , "INPUT_ATTACHMENT_READ_BIT")-  , (ACCESS_SHADER_READ_BIT                     , "SHADER_READ_BIT")-  , (ACCESS_SHADER_WRITE_BIT                    , "SHADER_WRITE_BIT")-  , (ACCESS_COLOR_ATTACHMENT_READ_BIT           , "COLOR_ATTACHMENT_READ_BIT")-  , (ACCESS_COLOR_ATTACHMENT_WRITE_BIT          , "COLOR_ATTACHMENT_WRITE_BIT")-  , (ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT   , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")-  , (ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT  , "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")-  , (ACCESS_TRANSFER_READ_BIT                   , "TRANSFER_READ_BIT")-  , (ACCESS_TRANSFER_WRITE_BIT                  , "TRANSFER_WRITE_BIT")-  , (ACCESS_HOST_READ_BIT                       , "HOST_READ_BIT")-  , (ACCESS_HOST_WRITE_BIT                      , "HOST_WRITE_BIT")-  , (ACCESS_MEMORY_READ_BIT                     , "MEMORY_READ_BIT")-  , (ACCESS_MEMORY_WRITE_BIT                    , "MEMORY_WRITE_BIT")-  , (ACCESS_NONE_KHR                            , "NONE_KHR")-  , (ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV     , "COMMAND_PREPROCESS_WRITE_BIT_NV")-  , (ACCESS_COMMAND_PREPROCESS_READ_BIT_NV      , "COMMAND_PREPROCESS_READ_BIT_NV")+  [ (ACCESS_INDIRECT_COMMAND_READ_BIT         , "INDIRECT_COMMAND_READ_BIT")+  , (ACCESS_INDEX_READ_BIT                    , "INDEX_READ_BIT")+  , (ACCESS_VERTEX_ATTRIBUTE_READ_BIT         , "VERTEX_ATTRIBUTE_READ_BIT")+  , (ACCESS_UNIFORM_READ_BIT                  , "UNIFORM_READ_BIT")+  , (ACCESS_INPUT_ATTACHMENT_READ_BIT         , "INPUT_ATTACHMENT_READ_BIT")+  , (ACCESS_SHADER_READ_BIT                   , "SHADER_READ_BIT")+  , (ACCESS_SHADER_WRITE_BIT                  , "SHADER_WRITE_BIT")+  , (ACCESS_COLOR_ATTACHMENT_READ_BIT         , "COLOR_ATTACHMENT_READ_BIT")+  , (ACCESS_COLOR_ATTACHMENT_WRITE_BIT        , "COLOR_ATTACHMENT_WRITE_BIT")+  , (ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")+  , (ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")+  , (ACCESS_TRANSFER_READ_BIT                 , "TRANSFER_READ_BIT")+  , (ACCESS_TRANSFER_WRITE_BIT                , "TRANSFER_WRITE_BIT")+  , (ACCESS_HOST_READ_BIT                     , "HOST_READ_BIT")+  , (ACCESS_HOST_WRITE_BIT                    , "HOST_WRITE_BIT")+  , (ACCESS_MEMORY_READ_BIT                   , "MEMORY_READ_BIT")+  , (ACCESS_MEMORY_WRITE_BIT                  , "MEMORY_WRITE_BIT")+  , (ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV   , "COMMAND_PREPROCESS_WRITE_BIT_NV")+  , (ACCESS_COMMAND_PREPROCESS_READ_BIT_NV    , "COMMAND_PREPROCESS_READ_BIT_NV")   , (ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")-  , (ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT   , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")+  , (ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")   , (ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")-  , (ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR , "ACCELERATION_STRUCTURE_READ_BIT_KHR")+  , (ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, "ACCELERATION_STRUCTURE_READ_BIT_KHR")   , (ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")-  , (ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT  , "CONDITIONAL_RENDERING_READ_BIT_EXT")+  , (ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, "CONDITIONAL_RENDERING_READ_BIT_EXT")   , (ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")   , (ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")-  , (ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT    , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")+  , (ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT  , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")+  , (ACCESS_NONE                              , "NONE")   ]  instance Show AccessFlagBits where
src/Vulkan/Core10/Enums/AttachmentLoadOp.hs view
@@ -24,7 +24,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo' newtype AttachmentLoadOp = AttachmentLoadOp Int32   deriving newtype (Eq, Ord, Storable, Zero) 
src/Vulkan/Core10/Enums/AttachmentStoreOp.hs view
@@ -2,7 +2,7 @@ -- No documentation found for Chapter "AttachmentStoreOp" module Vulkan.Core10.Enums.AttachmentStoreOp  (AttachmentStoreOp( ATTACHMENT_STORE_OP_STORE                                                                 , ATTACHMENT_STORE_OP_DONT_CARE-                                                                , ATTACHMENT_STORE_OP_NONE_KHR+                                                                , ATTACHMENT_STORE_OP_NONE                                                                 , ..                                                                 )) where @@ -31,7 +31,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo' newtype AttachmentStoreOp = AttachmentStoreOp Int32   deriving newtype (Eq, Ord, Storable, Zero) @@ -50,14 +50,14 @@ -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'. pattern ATTACHMENT_STORE_OP_DONT_CARE = AttachmentStoreOp 1--- | 'ATTACHMENT_STORE_OP_NONE_KHR' specifies the contents within the render--- area are not accessed by the store operation. However, if the attachment--- was written to during the render pass, the contents of the attachment--- will be undefined inside the render area.-pattern ATTACHMENT_STORE_OP_NONE_KHR  = AttachmentStoreOp 1000301000+-- | 'ATTACHMENT_STORE_OP_NONE' specifies the contents within the render area+-- are not accessed by the store operation. However, if the attachment was+-- written to during the render pass, the contents of the attachment will+-- be undefined inside the render area.+pattern ATTACHMENT_STORE_OP_NONE      = AttachmentStoreOp 1000301000 {-# complete ATTACHMENT_STORE_OP_STORE,              ATTACHMENT_STORE_OP_DONT_CARE,-             ATTACHMENT_STORE_OP_NONE_KHR :: AttachmentStoreOp #-}+             ATTACHMENT_STORE_OP_NONE :: AttachmentStoreOp #-}  conNameAttachmentStoreOp :: String conNameAttachmentStoreOp = "AttachmentStoreOp"@@ -69,7 +69,7 @@ showTableAttachmentStoreOp =   [ (ATTACHMENT_STORE_OP_STORE    , "STORE")   , (ATTACHMENT_STORE_OP_DONT_CARE, "DONT_CARE")-  , (ATTACHMENT_STORE_OP_NONE_KHR , "NONE_KHR")+  , (ATTACHMENT_STORE_OP_NONE     , "NONE")   ]  instance Show AttachmentStoreOp where
src/Vulkan/Core10/Enums/BorderColor.hs view
@@ -25,7 +25,7 @@ -- = Description -- -- These colors are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>. -- -- = See Also --
src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs view
@@ -29,9 +29,9 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features Physical Device Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Physical Device Features> -- for details of the sparse memory features supported on a device. -- -- = See Also
src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs view
@@ -45,7 +45,7 @@  -- | 'BUFFER_USAGE_TRANSFER_SRC_BIT' specifies that the buffer /can/ be used -- as the source of a /transfer command/ (see the definition of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >). pattern BUFFER_USAGE_TRANSFER_SRC_BIT                          = BufferUsageFlagBits 0x00000001 -- | 'BUFFER_USAGE_TRANSFER_DST_BIT' specifies that the buffer /can/ be used -- as the destination of a transfer command.@@ -97,7 +97,7 @@ pattern BUFFER_USAGE_INDIRECT_BUFFER_BIT                       = BufferUsageFlagBits 0x00000100 -- | 'BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR' specifies that the buffer is -- suitable for use as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>. pattern BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR              = BufferUsageFlagBits 0x00000400 -- | 'BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' specifies that the -- buffer is suitable for storage space for a@@ -105,7 +105,7 @@ pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR    = BufferUsageFlagBits 0x00100000 -- | 'BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' -- specifies that the buffer is suitable for use as a read-only input to an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>. pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits 0x00080000 -- | 'BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies that the buffer -- is suitable for passing as the @buffer@ parameter to
src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs view
@@ -31,7 +31,7 @@ -- is enabled. -- -- The color write mask operation is applied only if--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable> -- is enabled for the respective attachment. Otherwise the color write mask -- is ignored and writes to all components of the attachment are disabled. --
src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs view
@@ -34,7 +34,7 @@ -- returned to the parent command pool. If this flag is not set, then the -- command buffer /may/ hold onto memory resources and reuse them when -- recording commands. @commandBuffer@ is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. pattern COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = CommandBufferResetFlagBits 0x00000001  conNameCommandBufferResetFlagBits :: String
src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs view
@@ -39,7 +39,7 @@ pattern COMMAND_POOL_CREATE_TRANSIENT_BIT            = CommandPoolCreateFlagBits 0x00000001 -- | 'COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT' allows any command buffer -- allocated from a pool to be individually reset to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>;+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>; -- either by calling 'Vulkan.Core10.CommandBuffer.resetCommandBuffer', or -- via the implicit reset when calling -- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer'. If this flag is not
src/Vulkan/Core10/Enums/CompareOp.hs view
@@ -28,7 +28,9 @@ -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core10.Pipeline.StencilOpState',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' newtype CompareOp = CompareOp Int32   deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/Enums/ComponentSwizzle.hs view
@@ -55,7 +55,7 @@ -- | 'COMPONENT_SWIZZLE_ONE' specifies that the component is set to either 1 -- or 1.0, depending on whether the type of the image view format is -- integer or floating-point respectively, as determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-definition Format Definition>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-definition Format Definition> -- section for each 'Vulkan.Core10.Enums.Format.Format'. pattern COMPONENT_SWIZZLE_ONE      = ComponentSwizzle 2 -- | 'COMPONENT_SWIZZLE_R' specifies that the component is set to the value
src/Vulkan/Core10/Enums/DependencyFlagBits.hs view
@@ -32,13 +32,13 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'DEPENDENCY_BY_REGION_BIT' specifies that dependencies will be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>. pattern DEPENDENCY_BY_REGION_BIT    = DependencyFlagBits 0x00000001 -- | 'DEPENDENCY_VIEW_LOCAL_BIT' specifies that a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass has more than one view>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass has more than one view>. pattern DEPENDENCY_VIEW_LOCAL_BIT   = DependencyFlagBits 0x00000002 -- | 'DEPENDENCY_DEVICE_GROUP_BIT' specifies that dependencies are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>. pattern DEPENDENCY_DEVICE_GROUP_BIT = DependencyFlagBits 0x00000004  conNameDependencyFlagBits :: String
src/Vulkan/Core10/Enums/DescriptorType.hs view
@@ -14,7 +14,7 @@                                                           , DESCRIPTOR_TYPE_MUTABLE_VALVE                                                           , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV                                                           , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR-                                                          , DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT+                                                          , DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK                                                           , ..                                                           )) where @@ -33,43 +33,43 @@ -- = Description -- -- -   'DESCRIPTOR_TYPE_SAMPLER' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampler sampler descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler sampler descriptor>. -- -- -   'DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler combined image sampler descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler combined image sampler descriptor>. -- -- -   'DESCRIPTOR_TYPE_SAMPLED_IMAGE' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image descriptor>. -- -- -   'DESCRIPTOR_TYPE_STORAGE_IMAGE' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image descriptor>. -- -- -   'DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer descriptor>. -- -- -   'DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer descriptor>. -- -- -   'DESCRIPTOR_TYPE_UNIFORM_BUFFER' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer descriptor>. -- -- -   'DESCRIPTOR_TYPE_STORAGE_BUFFER' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer descriptor>. -- -- -   'DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic dynamic uniform buffer descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic dynamic uniform buffer descriptor>. -- -- -   'DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic dynamic storage buffer descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic dynamic storage buffer descriptor>. -- -- -   'DESCRIPTOR_TYPE_INPUT_ATTACHMENT' specifies an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inputattachment input attachment descriptor>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment input attachment descriptor>. ----- -   'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' specifies an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>.+-- -   'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' specifies an+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>. -- -- -   'DESCRIPTOR_TYPE_MUTABLE_VALVE' specifies a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>. -- -- When a descriptor set is updated via elements of -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', members of@@ -109,10 +109,10 @@ --     is accessed. -- -- When updating descriptors with a @descriptorType@ of--- 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT', none of the @pImageInfo@,+-- 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', none of the @pImageInfo@, -- @pBufferInfo@, or @pTexelBufferView@ members are accessed, instead the -- source data of the descriptor update operation is taken from the--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- structure in the @pNext@ chain of -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet'. When updating -- descriptors with a @descriptorType@ of@@ -170,8 +170,8 @@ pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV  = DescriptorType 1000165000 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR" pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = DescriptorType 1000150000--- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT"-pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT   = DescriptorType 1000138000+-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK"+pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK       = DescriptorType 1000138000 {-# complete DESCRIPTOR_TYPE_SAMPLER,              DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,              DESCRIPTOR_TYPE_SAMPLED_IMAGE,@@ -186,7 +186,7 @@              DESCRIPTOR_TYPE_MUTABLE_VALVE,              DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,              DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,-             DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT :: DescriptorType #-}+             DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK :: DescriptorType #-}  conNameDescriptorType :: String conNameDescriptorType = "DescriptorType"@@ -210,7 +210,7 @@   , (DESCRIPTOR_TYPE_MUTABLE_VALVE             , "MUTABLE_VALVE")   , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , "ACCELERATION_STRUCTURE_NV")   , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, "ACCELERATION_STRUCTURE_KHR")-  , (DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT  , "INLINE_UNIFORM_BLOCK_EXT")+  , (DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK      , "INLINE_UNIFORM_BLOCK")   ]  instance Show DescriptorType where
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -10,24 +10,9 @@                                                       , DYNAMIC_STATE_STENCIL_WRITE_MASK                                                       , DYNAMIC_STATE_STENCIL_REFERENCE                                                       , DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT-                                                      , DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT                                                       , DYNAMIC_STATE_LOGIC_OP_EXT-                                                      , DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT-                                                      , DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT                                                       , DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT                                                       , DYNAMIC_STATE_VERTEX_INPUT_EXT-                                                      , DYNAMIC_STATE_STENCIL_OP_EXT-                                                      , DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT-                                                      , DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT-                                                      , DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT-                                                      , DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT-                                                      , DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT-                                                      , DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT-                                                      , DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT-                                                      , DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT-                                                      , DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT-                                                      , DYNAMIC_STATE_FRONT_FACE_EXT-                                                      , DYNAMIC_STATE_CULL_MODE_EXT                                                       , DYNAMIC_STATE_LINE_STIPPLE_EXT                                                       , DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR                                                       , DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV@@ -37,6 +22,21 @@                                                       , DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT                                                       , DYNAMIC_STATE_DISCARD_RECTANGLE_EXT                                                       , DYNAMIC_STATE_VIEWPORT_W_SCALING_NV+                                                      , DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE+                                                      , DYNAMIC_STATE_DEPTH_BIAS_ENABLE+                                                      , DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE+                                                      , DYNAMIC_STATE_STENCIL_OP+                                                      , DYNAMIC_STATE_STENCIL_TEST_ENABLE+                                                      , DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE+                                                      , DYNAMIC_STATE_DEPTH_COMPARE_OP+                                                      , DYNAMIC_STATE_DEPTH_WRITE_ENABLE+                                                      , DYNAMIC_STATE_DEPTH_TEST_ENABLE+                                                      , DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE+                                                      , DYNAMIC_STATE_SCISSOR_WITH_COUNT+                                                      , DYNAMIC_STATE_VIEWPORT_WITH_COUNT+                                                      , DYNAMIC_STATE_PRIMITIVE_TOPOLOGY+                                                      , DYNAMIC_STATE_FRONT_FACE+                                                      , DYNAMIC_STATE_CULL_MODE                                                       , ..                                                       )) where @@ -140,33 +140,12 @@ -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT' -- before any draw call. pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT              = DynamicState 1000381000--- | 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' specifies that the--- @primitiveRestartEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT        = DynamicState 1000377004 -- | 'DYNAMIC_STATE_LOGIC_OP_EXT' specifies that the @logicOp@ state in -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo' will be -- ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT' -- before any drawing commands. pattern DYNAMIC_STATE_LOGIC_OP_EXT                        = DynamicState 1000377003--- | 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' specifies that the--- @depthBiasEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT               = DynamicState 1000377002--- | 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' specifies that the--- @rasterizerDiscardEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT       = DynamicState 1000377001 -- | 'DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' specifies that the -- @patchControlPoints@ state in -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' will be@@ -179,90 +158,6 @@ -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' -- before any drawing commands pattern DYNAMIC_STATE_VERTEX_INPUT_EXT                    = DynamicState 1000352000--- | 'DYNAMIC_STATE_STENCIL_OP_EXT' specifies that the @failOp@, @passOp@,--- @depthFailOp@, and @compareOp@ states in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both--- @front@ and @back@ will be ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT'--- before any draws are performed with a pipeline state with--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member--- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'-pattern DYNAMIC_STATE_STENCIL_OP_EXT                      = DynamicState 1000267011--- | 'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT' specifies that the--- @stencilTestEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT             = DynamicState 1000267010--- | 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT' specifies that the--- @depthBoundsTestEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT        = DynamicState 1000267009--- | 'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT' specifies that the @depthCompareOp@--- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'--- will be ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT                = DynamicState 1000267008--- | 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT' specifies that the--- @depthWriteEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT              = DynamicState 1000267007--- | 'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT' specifies that the--- @depthTestEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT               = DynamicState 1000267006--- | 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' specifies that the--- @stride@ state in 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'--- will be ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- before any draw call.-pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT     = DynamicState 1000267005--- | 'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' specifies that the @scissorCount@--- and @pScissors@ state in--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored--- and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- before any draw call.-pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT              = DynamicState 1000267004--- | 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' specifies that the--- @viewportCount@ and @pViewports@ state in--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored--- and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- before any draw call.-pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT             = DynamicState 1000267003--- | 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' specifies that the @topology@--- state in 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'--- only specifies the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>,--- and the specific topology order and adjacency /must/ be set dynamically--- with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT              = DynamicState 1000267002--- | 'DYNAMIC_STATE_FRONT_FACE_EXT' specifies that the @frontFace@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_FRONT_FACE_EXT                      = DynamicState 1000267001--- | 'DYNAMIC_STATE_CULL_MODE_EXT' specifies that the @cullMode@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_CULL_MODE_EXT                       = DynamicState 1000267000 -- | 'DYNAMIC_STATE_LINE_STIPPLE_EXT' specifies that the @lineStippleFactor@ -- and @lineStipplePattern@ state in -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'@@ -343,6 +238,108 @@ -- member @viewportScalingEnable@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE' pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV               = DynamicState 1000087000+-- | 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' specifies that the+-- @primitiveRestartEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'+-- before any drawing commands.+pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE            = DynamicState 1000377004+-- | 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE' specifies that the @depthBiasEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- before any drawing commands.+pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE                   = DynamicState 1000377002+-- | 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' specifies that the+-- @rasterizerDiscardEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- before any drawing commands.+pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE           = DynamicState 1000377001+-- | 'DYNAMIC_STATE_STENCIL_OP' specifies that the @failOp@, @passOp@,+-- @depthFailOp@, and @compareOp@ states in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both+-- @front@ and @back@ will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+-- before any draws are performed with a pipeline state with+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member+-- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'+pattern DYNAMIC_STATE_STENCIL_OP                          = DynamicState 1000267011+-- | 'DYNAMIC_STATE_STENCIL_TEST_ENABLE' specifies that the+-- @stencilTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+-- before any draw call.+pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE                 = DynamicState 1000267010+-- | 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE' specifies that the+-- @depthBoundsTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE            = DynamicState 1000267009+-- | 'DYNAMIC_STATE_DEPTH_COMPARE_OP' specifies that the @depthCompareOp@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_COMPARE_OP                    = DynamicState 1000267008+-- | 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE' specifies that the @depthWriteEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE                  = DynamicState 1000267007+-- | 'DYNAMIC_STATE_DEPTH_TEST_ENABLE' specifies that the @depthTestEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE                   = DynamicState 1000267006+-- | 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE' specifies that the @stride@+-- state in 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'+-- before any draw call.+pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE         = DynamicState 1000267005+-- | 'DYNAMIC_STATE_SCISSOR_WITH_COUNT' specifies that the @scissorCount@ and+-- @pScissors@ state in+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored+-- and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- before any draw call.+pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT                  = DynamicState 1000267004+-- | 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT' specifies that the @viewportCount@+-- and @pViewports@ state in+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored+-- and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- before any draw call.+pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT                 = DynamicState 1000267003+-- | 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' specifies that the @topology@ state+-- in 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' only+-- specifies the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>,+-- and the specific topology order and adjacency /must/ be set dynamically+-- with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'+-- before any drawing commands.+pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY                  = DynamicState 1000267002+-- | 'DYNAMIC_STATE_FRONT_FACE' specifies that the @frontFace@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+-- before any drawing commands.+pattern DYNAMIC_STATE_FRONT_FACE                          = DynamicState 1000267001+-- | 'DYNAMIC_STATE_CULL_MODE' specifies that the @cullMode@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+-- before any drawing commands.+pattern DYNAMIC_STATE_CULL_MODE                           = DynamicState 1000267000 {-# complete DYNAMIC_STATE_VIEWPORT,              DYNAMIC_STATE_SCISSOR,              DYNAMIC_STATE_LINE_WIDTH,@@ -353,24 +350,9 @@              DYNAMIC_STATE_STENCIL_WRITE_MASK,              DYNAMIC_STATE_STENCIL_REFERENCE,              DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,-             DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,              DYNAMIC_STATE_LOGIC_OP_EXT,-             DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,-             DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,              DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,              DYNAMIC_STATE_VERTEX_INPUT_EXT,-             DYNAMIC_STATE_STENCIL_OP_EXT,-             DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,-             DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,-             DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,-             DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,-             DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,-             DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,-             DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,-             DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,-             DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,-             DYNAMIC_STATE_FRONT_FACE_EXT,-             DYNAMIC_STATE_CULL_MODE_EXT,              DYNAMIC_STATE_LINE_STIPPLE_EXT,              DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,              DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,@@ -379,7 +361,22 @@              DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,              DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,              DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,-             DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState #-}+             DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,+             DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,+             DYNAMIC_STATE_DEPTH_BIAS_ENABLE,+             DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,+             DYNAMIC_STATE_STENCIL_OP,+             DYNAMIC_STATE_STENCIL_TEST_ENABLE,+             DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,+             DYNAMIC_STATE_DEPTH_COMPARE_OP,+             DYNAMIC_STATE_DEPTH_WRITE_ENABLE,+             DYNAMIC_STATE_DEPTH_TEST_ENABLE,+             DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,+             DYNAMIC_STATE_SCISSOR_WITH_COUNT,+             DYNAMIC_STATE_VIEWPORT_WITH_COUNT,+             DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,+             DYNAMIC_STATE_FRONT_FACE,+             DYNAMIC_STATE_CULL_MODE :: DynamicState #-}  conNameDynamicState :: String conNameDynamicState = "DynamicState"@@ -399,24 +396,9 @@   , (DYNAMIC_STATE_STENCIL_WRITE_MASK                 , "STENCIL_WRITE_MASK")   , (DYNAMIC_STATE_STENCIL_REFERENCE                  , "STENCIL_REFERENCE")   , (DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT             , "COLOR_WRITE_ENABLE_EXT")-  , (DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT       , "PRIMITIVE_RESTART_ENABLE_EXT")   , (DYNAMIC_STATE_LOGIC_OP_EXT                       , "LOGIC_OP_EXT")-  , (DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT              , "DEPTH_BIAS_ENABLE_EXT")-  , (DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT      , "RASTERIZER_DISCARD_ENABLE_EXT")   , (DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT           , "PATCH_CONTROL_POINTS_EXT")   , (DYNAMIC_STATE_VERTEX_INPUT_EXT                   , "VERTEX_INPUT_EXT")-  , (DYNAMIC_STATE_STENCIL_OP_EXT                     , "STENCIL_OP_EXT")-  , (DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT            , "STENCIL_TEST_ENABLE_EXT")-  , (DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT       , "DEPTH_BOUNDS_TEST_ENABLE_EXT")-  , (DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT               , "DEPTH_COMPARE_OP_EXT")-  , (DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT             , "DEPTH_WRITE_ENABLE_EXT")-  , (DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT              , "DEPTH_TEST_ENABLE_EXT")-  , (DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT    , "VERTEX_INPUT_BINDING_STRIDE_EXT")-  , (DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT             , "SCISSOR_WITH_COUNT_EXT")-  , (DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT            , "VIEWPORT_WITH_COUNT_EXT")-  , (DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT             , "PRIMITIVE_TOPOLOGY_EXT")-  , (DYNAMIC_STATE_FRONT_FACE_EXT                     , "FRONT_FACE_EXT")-  , (DYNAMIC_STATE_CULL_MODE_EXT                      , "CULL_MODE_EXT")   , (DYNAMIC_STATE_LINE_STIPPLE_EXT                   , "LINE_STIPPLE_EXT")   , (DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR          , "FRAGMENT_SHADING_RATE_KHR")   , (DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV               , "EXCLUSIVE_SCISSOR_NV")@@ -426,6 +408,21 @@   , (DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT               , "SAMPLE_LOCATIONS_EXT")   , (DYNAMIC_STATE_DISCARD_RECTANGLE_EXT              , "DISCARD_RECTANGLE_EXT")   , (DYNAMIC_STATE_VIEWPORT_W_SCALING_NV              , "VIEWPORT_W_SCALING_NV")+  , (DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE           , "PRIMITIVE_RESTART_ENABLE")+  , (DYNAMIC_STATE_DEPTH_BIAS_ENABLE                  , "DEPTH_BIAS_ENABLE")+  , (DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE          , "RASTERIZER_DISCARD_ENABLE")+  , (DYNAMIC_STATE_STENCIL_OP                         , "STENCIL_OP")+  , (DYNAMIC_STATE_STENCIL_TEST_ENABLE                , "STENCIL_TEST_ENABLE")+  , (DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE           , "DEPTH_BOUNDS_TEST_ENABLE")+  , (DYNAMIC_STATE_DEPTH_COMPARE_OP                   , "DEPTH_COMPARE_OP")+  , (DYNAMIC_STATE_DEPTH_WRITE_ENABLE                 , "DEPTH_WRITE_ENABLE")+  , (DYNAMIC_STATE_DEPTH_TEST_ENABLE                  , "DEPTH_TEST_ENABLE")+  , (DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE        , "VERTEX_INPUT_BINDING_STRIDE")+  , (DYNAMIC_STATE_SCISSOR_WITH_COUNT                 , "SCISSOR_WITH_COUNT")+  , (DYNAMIC_STATE_VIEWPORT_WITH_COUNT                , "VIEWPORT_WITH_COUNT")+  , (DYNAMIC_STATE_PRIMITIVE_TOPOLOGY                 , "PRIMITIVE_TOPOLOGY")+  , (DYNAMIC_STATE_FRONT_FACE                         , "FRONT_FACE")+  , (DYNAMIC_STATE_CULL_MODE                          , "CULL_MODE")   ]  instance Show DynamicState where
src/Vulkan/Core10/Enums/EventCreateFlagBits.hs view
@@ -1,7 +1,7 @@ {-# language CPP #-} -- No documentation found for Chapter "EventCreateFlagBits" module Vulkan.Core10.Enums.EventCreateFlagBits  ( EventCreateFlags-                                                , EventCreateFlagBits( EVENT_CREATE_DEVICE_ONLY_BIT_KHR+                                                , EventCreateFlagBits( EVENT_CREATE_DEVICE_ONLY_BIT                                                                      , ..                                                                      )                                                 ) where@@ -28,18 +28,18 @@ newtype EventCreateFlagBits = EventCreateFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'EVENT_CREATE_DEVICE_ONLY_BIT_KHR' specifies that host event commands--- will not be used with this event.-pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR = EventCreateFlagBits 0x00000001+-- | 'EVENT_CREATE_DEVICE_ONLY_BIT' specifies that host event commands will+-- not be used with this event.+pattern EVENT_CREATE_DEVICE_ONLY_BIT = EventCreateFlagBits 0x00000001  conNameEventCreateFlagBits :: String conNameEventCreateFlagBits = "EventCreateFlagBits"  enumPrefixEventCreateFlagBits :: String-enumPrefixEventCreateFlagBits = "EVENT_CREATE_DEVICE_ONLY_BIT_KHR"+enumPrefixEventCreateFlagBits = "EVENT_CREATE_DEVICE_ONLY_BIT"  showTableEventCreateFlagBits :: [(EventCreateFlagBits, String)]-showTableEventCreateFlagBits = [(EVENT_CREATE_DEVICE_ONLY_BIT_KHR, "")]+showTableEventCreateFlagBits = [(EVENT_CREATE_DEVICE_ONLY_BIT, "")]  instance Show EventCreateFlagBits where   showsPrec = enumShowsPrec enumPrefixEventCreateFlagBits
src/Vulkan/Core10/Enums/Filter.hs view
@@ -20,12 +20,12 @@ -- = Description -- -- These filters are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>. -- -- = 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_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'
src/Vulkan/Core10/Enums/Format.hs view
@@ -185,26 +185,6 @@                                           , FORMAT_ASTC_12x10_SRGB_BLOCK                                           , FORMAT_ASTC_12x12_UNORM_BLOCK                                           , FORMAT_ASTC_12x12_SRGB_BLOCK-                                          , FORMAT_A4B4G4R4_UNORM_PACK16_EXT-                                          , FORMAT_A4R4G4B4_UNORM_PACK16_EXT-                                          , FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT-                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT-                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT-                                          , FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT-                                          , FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT-                                          , FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT                                           , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG                                           , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG                                           , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG@@ -213,6 +193,26 @@                                           , FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                                           , FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                                           , FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG+                                          , FORMAT_ASTC_12x12_SFLOAT_BLOCK+                                          , FORMAT_ASTC_12x10_SFLOAT_BLOCK+                                          , FORMAT_ASTC_10x10_SFLOAT_BLOCK+                                          , FORMAT_ASTC_10x8_SFLOAT_BLOCK+                                          , FORMAT_ASTC_10x6_SFLOAT_BLOCK+                                          , FORMAT_ASTC_10x5_SFLOAT_BLOCK+                                          , FORMAT_ASTC_8x8_SFLOAT_BLOCK+                                          , FORMAT_ASTC_8x6_SFLOAT_BLOCK+                                          , FORMAT_ASTC_8x5_SFLOAT_BLOCK+                                          , FORMAT_ASTC_6x6_SFLOAT_BLOCK+                                          , FORMAT_ASTC_6x5_SFLOAT_BLOCK+                                          , FORMAT_ASTC_5x5_SFLOAT_BLOCK+                                          , FORMAT_ASTC_5x4_SFLOAT_BLOCK+                                          , FORMAT_ASTC_4x4_SFLOAT_BLOCK+                                          , FORMAT_A4B4G4R4_UNORM_PACK16+                                          , FORMAT_A4R4G4B4_UNORM_PACK16+                                          , FORMAT_G16_B16R16_2PLANE_444_UNORM+                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16+                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16+                                          , FORMAT_G8_B8R8_2PLANE_444_UNORM                                           , FORMAT_G16_B16_R16_3PLANE_444_UNORM                                           , FORMAT_G16_B16R16_2PLANE_422_UNORM                                           , FORMAT_G16_B16_R16_3PLANE_422_UNORM@@ -270,7 +270,7 @@ -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', -- 'Vulkan.Core10.Image.ImageCreateInfo',@@ -279,7 +279,7 @@ -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR',@@ -833,9 +833,9 @@ -- packed unsigned floating-point format that has a 10-bit B component in -- bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component -- in bits 0..10. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-fp10>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-fp11>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp11>. pattern FORMAT_B10G11R11_UFLOAT_PACK32            = Format 122 -- | 'FORMAT_E5B9G9R9_UFLOAT_PACK32' specifies a three-component, 32-bit -- packed unsigned floating-point format that has a 5-bit shared exponent@@ -1120,127 +1120,6 @@ -- 12×12 rectangle of unsigned normalized RGBA texel data with sRGB -- nonlinear encoding applied to the RGB components. pattern FORMAT_ASTC_12x12_SRGB_BLOCK              = Format 184--- | 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' specifies a four-component, 16-bit--- packed unsigned normalized format that has a 4-bit A component in bits--- 12..15, a 4-bit B component in bits 8..11, a 4-bit G component in bits--- 4..7, and a 4-bit R component in bits 0..3.-pattern FORMAT_A4B4G4R4_UNORM_PACK16_EXT          = Format 1000340001--- | 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' specifies a four-component, 16-bit--- packed unsigned normalized format that has a 4-bit A component in bits--- 12..15, a 4-bit R component in bits 8..11, a 4-bit G component in bits--- 4..7, and a 4-bit B component in bits 0..3.-pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT          = Format 1000340000--- | 'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' specifies an unsigned--- normalized /multi-planar format/ that has a 16-bit G component in each--- 16-bit word of plane 0, and a two-component, 32-bit BR plane 1--- consisting of a 16-bit B component in the word in bytes 0..1, and a--- 16-bit R component in the word in bytes 2..3. Both planes have the same--- dimensions and each R, G and B component contributes to a single texel.--- The location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT    = Format 1000330003--- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' specifies an--- unsigned normalized /multi-planar format/ that has a 12-bit G component--- in the top 12 bits of each 16-bit word of plane 0, and a two-component,--- 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits--- of the word in bytes 0..1, and a 12-bit R component in the top 12 bits--- of the word in bytes 2..3, the bottom 4 bits of each word unused. Both--- planes have the same dimensions and each R, G and B component--- contributes to a single texel. The location of each plane when this--- image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = Format 1000330002--- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' specifies an--- unsigned normalized /multi-planar format/ that has a 10-bit G component--- in the top 10 bits of each 16-bit word of plane 0, and a two-component,--- 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits--- of the word in bytes 0..1, and a 10-bit R component in the top 10 bits--- of the word in bytes 2..3, the bottom 6 bits of each word unused. Both--- planes have the same dimensions and each R, G and B component--- contributes to a single texel. The location of each plane when this--- image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = Format 1000330001--- | 'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' specifies an unsigned normalized--- /multi-planar format/ that has an 8-bit G component in plane 0, and a--- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in--- byte 0 and an 8-bit R component in byte 1. Both planes have the same--- dimensions and each R, G and B component contributes to a single texel.--- The location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT       = Format 1000330000--- | 'FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×12 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT        = Format 1000066013--- | 'FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×10 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT        = Format 1000066012--- | 'FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×10 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT        = Format 1000066011--- | 'FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×8 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT         = Format 1000066010--- | 'FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×6 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT         = Format 1000066009--- | 'FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT         = Format 1000066008--- | 'FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 8×8 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT          = Format 1000066007--- | 'FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 8×6 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT          = Format 1000066006--- | 'FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 8×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT          = Format 1000066005--- | 'FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 6×6 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT          = Format 1000066004--- | 'FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 6×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT          = Format 1000066003--- | 'FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 5×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT          = Format 1000066002--- | 'FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 5×4 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT          = Format 1000066001--- | 'FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT          = Format 1000066000 -- | 'FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC -- compressed format where each 64-bit compressed texel block encodes a 4×4 -- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear@@ -1277,6 +1156,127 @@ -- compressed format where each 64-bit compressed texel block encodes an -- 8×4 rectangle of unsigned normalized RGBA texel data. pattern FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG        = Format 1000054000+-- | 'FORMAT_ASTC_12x12_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×12 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK            = Format 1000066013+-- | 'FORMAT_ASTC_12x10_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×10 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK            = Format 1000066012+-- | 'FORMAT_ASTC_10x10_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×10 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK            = Format 1000066011+-- | 'FORMAT_ASTC_10x8_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×8 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK             = Format 1000066010+-- | 'FORMAT_ASTC_10x6_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×6 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK             = Format 1000066009+-- | 'FORMAT_ASTC_10x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK             = Format 1000066008+-- | 'FORMAT_ASTC_8x8_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 8×8 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK              = Format 1000066007+-- | 'FORMAT_ASTC_8x6_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 8×6 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK              = Format 1000066006+-- | 'FORMAT_ASTC_8x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 8×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK              = Format 1000066005+-- | 'FORMAT_ASTC_6x6_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×6 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK              = Format 1000066004+-- | 'FORMAT_ASTC_6x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK              = Format 1000066003+-- | 'FORMAT_ASTC_5x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK              = Format 1000066002+-- | 'FORMAT_ASTC_5x4_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×4 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK              = Format 1000066001+-- | 'FORMAT_ASTC_4x4_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK              = Format 1000066000+-- | 'FORMAT_A4B4G4R4_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 4-bit A component in bits 12..15,+-- a 4-bit B component in bits 8..11, a 4-bit G component in bits 4..7, and+-- a 4-bit R component in bits 0..3.+pattern FORMAT_A4B4G4R4_UNORM_PACK16              = Format 1000340001+-- | 'FORMAT_A4R4G4B4_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 4-bit A component in bits 12..15,+-- a 4-bit R component in bits 8..11, a 4-bit G component in bits 4..7, and+-- a 4-bit B component in bits 0..3.+pattern FORMAT_A4R4G4B4_UNORM_PACK16              = Format 1000340000+-- | 'FORMAT_G16_B16R16_2PLANE_444_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has a 16-bit G component in each 16-bit word+-- of plane 0, and a two-component, 32-bit BR plane 1 consisting of a+-- 16-bit B component in the word in bytes 0..1, and a 16-bit R component+-- in the word in bytes 2..3. Both planes have the same dimensions and each+-- R, G and B component contributes to a single texel. The location of each+-- plane when this image is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G16_B16R16_2PLANE_444_UNORM        = Format 1000330003+-- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16' specifies an unsigned+-- normalized /multi-planar format/ that has a 12-bit G component in the+-- top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit+-- BR plane 1 consisting of a 12-bit B component in the top 12 bits of the+-- word in bytes 0..1, and a 12-bit R component in the top 12 bits of the+-- word in bytes 2..3, the bottom 4 bits of each word unused. Both planes+-- have the same dimensions and each R, G and B component contributes to a+-- single texel. The location of each plane when this image is in linear+-- layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = Format 1000330002+-- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16' specifies an unsigned+-- normalized /multi-planar format/ that has a 10-bit G component in the+-- top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit+-- BR plane 1 consisting of a 10-bit B component in the top 10 bits of the+-- word in bytes 0..1, and a 10-bit R component in the top 10 bits of the+-- word in bytes 2..3, the bottom 6 bits of each word unused. Both planes+-- have the same dimensions and each R, G and B component contributes to a+-- single texel. The location of each plane when this image is in linear+-- layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = Format 1000330001+-- | 'FORMAT_G8_B8R8_2PLANE_444_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has an 8-bit G component in plane 0, and a+-- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in+-- byte 0 and an 8-bit R component in byte 1. Both planes have the same+-- dimensions and each R, G and B component contributes to a single texel.+-- The location of each plane when this image is in linear layout can be+-- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G8_B8R8_2PLANE_444_UNORM           = Format 1000330000 -- | 'FORMAT_G16_B16_R16_3PLANE_444_UNORM' specifies an unsigned normalized -- /multi-planar format/ that has a 16-bit G component in each 16-bit word -- of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a@@ -1964,26 +1964,6 @@              FORMAT_ASTC_12x10_SRGB_BLOCK,              FORMAT_ASTC_12x12_UNORM_BLOCK,              FORMAT_ASTC_12x12_SRGB_BLOCK,-             FORMAT_A4B4G4R4_UNORM_PACK16_EXT,-             FORMAT_A4R4G4B4_UNORM_PACK16_EXT,-             FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,-             FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,-             FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,-             FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,-             FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,-             FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,              FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,              FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,              FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,@@ -1992,6 +1972,26 @@              FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,              FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,              FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,+             FORMAT_ASTC_12x12_SFLOAT_BLOCK,+             FORMAT_ASTC_12x10_SFLOAT_BLOCK,+             FORMAT_ASTC_10x10_SFLOAT_BLOCK,+             FORMAT_ASTC_10x8_SFLOAT_BLOCK,+             FORMAT_ASTC_10x6_SFLOAT_BLOCK,+             FORMAT_ASTC_10x5_SFLOAT_BLOCK,+             FORMAT_ASTC_8x8_SFLOAT_BLOCK,+             FORMAT_ASTC_8x6_SFLOAT_BLOCK,+             FORMAT_ASTC_8x5_SFLOAT_BLOCK,+             FORMAT_ASTC_6x6_SFLOAT_BLOCK,+             FORMAT_ASTC_6x5_SFLOAT_BLOCK,+             FORMAT_ASTC_5x5_SFLOAT_BLOCK,+             FORMAT_ASTC_5x4_SFLOAT_BLOCK,+             FORMAT_ASTC_4x4_SFLOAT_BLOCK,+             FORMAT_A4B4G4R4_UNORM_PACK16,+             FORMAT_A4R4G4B4_UNORM_PACK16,+             FORMAT_G16_B16R16_2PLANE_444_UNORM,+             FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,+             FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,+             FORMAT_G8_B8R8_2PLANE_444_UNORM,              FORMAT_G16_B16_R16_3PLANE_444_UNORM,              FORMAT_G16_B16R16_2PLANE_422_UNORM,              FORMAT_G16_B16_R16_3PLANE_422_UNORM,@@ -2220,26 +2220,6 @@   , (FORMAT_ASTC_12x10_SRGB_BLOCK             , "ASTC_12x10_SRGB_BLOCK")   , (FORMAT_ASTC_12x12_UNORM_BLOCK            , "ASTC_12x12_UNORM_BLOCK")   , (FORMAT_ASTC_12x12_SRGB_BLOCK             , "ASTC_12x12_SRGB_BLOCK")-  , (FORMAT_A4B4G4R4_UNORM_PACK16_EXT         , "A4B4G4R4_UNORM_PACK16_EXT")-  , (FORMAT_A4R4G4B4_UNORM_PACK16_EXT         , "A4R4G4B4_UNORM_PACK16_EXT")-  , (FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT   , "G16_B16R16_2PLANE_444_UNORM_EXT")-  , (FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT, "G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT")-  , (FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT, "G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT")-  , (FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT      , "G8_B8R8_2PLANE_444_UNORM_EXT")-  , (FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT       , "ASTC_12x12_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT       , "ASTC_12x10_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT       , "ASTC_10x10_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT        , "ASTC_10x8_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT        , "ASTC_10x6_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT        , "ASTC_10x5_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT         , "ASTC_8x8_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT         , "ASTC_8x6_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT         , "ASTC_8x5_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT         , "ASTC_6x6_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT         , "ASTC_6x5_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT         , "ASTC_5x5_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT         , "ASTC_5x4_SFLOAT_BLOCK_EXT")-  , (FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT         , "ASTC_4x4_SFLOAT_BLOCK_EXT")   , (FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG        , "PVRTC2_4BPP_SRGB_BLOCK_IMG")   , (FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG        , "PVRTC2_2BPP_SRGB_BLOCK_IMG")   , (FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG        , "PVRTC1_4BPP_SRGB_BLOCK_IMG")@@ -2248,6 +2228,26 @@   , (FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG       , "PVRTC2_2BPP_UNORM_BLOCK_IMG")   , (FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG       , "PVRTC1_4BPP_UNORM_BLOCK_IMG")   , (FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG       , "PVRTC1_2BPP_UNORM_BLOCK_IMG")+  , (FORMAT_ASTC_12x12_SFLOAT_BLOCK           , "ASTC_12x12_SFLOAT_BLOCK")+  , (FORMAT_ASTC_12x10_SFLOAT_BLOCK           , "ASTC_12x10_SFLOAT_BLOCK")+  , (FORMAT_ASTC_10x10_SFLOAT_BLOCK           , "ASTC_10x10_SFLOAT_BLOCK")+  , (FORMAT_ASTC_10x8_SFLOAT_BLOCK            , "ASTC_10x8_SFLOAT_BLOCK")+  , (FORMAT_ASTC_10x6_SFLOAT_BLOCK            , "ASTC_10x6_SFLOAT_BLOCK")+  , (FORMAT_ASTC_10x5_SFLOAT_BLOCK            , "ASTC_10x5_SFLOAT_BLOCK")+  , (FORMAT_ASTC_8x8_SFLOAT_BLOCK             , "ASTC_8x8_SFLOAT_BLOCK")+  , (FORMAT_ASTC_8x6_SFLOAT_BLOCK             , "ASTC_8x6_SFLOAT_BLOCK")+  , (FORMAT_ASTC_8x5_SFLOAT_BLOCK             , "ASTC_8x5_SFLOAT_BLOCK")+  , (FORMAT_ASTC_6x6_SFLOAT_BLOCK             , "ASTC_6x6_SFLOAT_BLOCK")+  , (FORMAT_ASTC_6x5_SFLOAT_BLOCK             , "ASTC_6x5_SFLOAT_BLOCK")+  , (FORMAT_ASTC_5x5_SFLOAT_BLOCK             , "ASTC_5x5_SFLOAT_BLOCK")+  , (FORMAT_ASTC_5x4_SFLOAT_BLOCK             , "ASTC_5x4_SFLOAT_BLOCK")+  , (FORMAT_ASTC_4x4_SFLOAT_BLOCK             , "ASTC_4x4_SFLOAT_BLOCK")+  , (FORMAT_A4B4G4R4_UNORM_PACK16             , "A4B4G4R4_UNORM_PACK16")+  , (FORMAT_A4R4G4B4_UNORM_PACK16             , "A4R4G4B4_UNORM_PACK16")+  , (FORMAT_G16_B16R16_2PLANE_444_UNORM       , "G16_B16R16_2PLANE_444_UNORM")+  , (FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, "G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16")+  , (FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, "G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16")+  , (FORMAT_G8_B8R8_2PLANE_444_UNORM          , "G8_B8R8_2PLANE_444_UNORM")   , (FORMAT_G16_B16_R16_3PLANE_444_UNORM      , "G16_B16_R16_3PLANE_444_UNORM")   , (FORMAT_G16_B16R16_2PLANE_422_UNORM       , "G16_B16R16_2PLANE_422_UNORM")   , (FORMAT_G16_B16_R16_3PLANE_422_UNORM      , "G16_B16_R16_3PLANE_422_UNORM")
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -51,9 +51,8 @@ -- = Description -- -- These values all have the same meaning as the equivalently named values--- for--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'--- and /may/ be set in @linearTilingFeatures@, @optimalTilingFeatures@, and+-- for 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2' and+-- /may/ be set in @linearTilingFeatures@, @optimalTilingFeatures@, and -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierTilingFeatures@, -- specifying that the features are supported by <VkImage.html images> or -- <VkImageView.html image views> or@@ -63,11 +62,11 @@ -- -- -   'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' specifies that an image view --     /can/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>. -- -- -   'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view --     /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. -- -- -   'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image --     view /can/ be used as storage image that supports atomic operations.@@ -86,13 +85,13 @@ -- -- -   'FORMAT_FEATURE_BLIT_SRC_BIT' specifies that an image /can/ be used --     as @srcImage@ for the---     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+--     'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+--     and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. -- -- -   'FORMAT_FEATURE_BLIT_DST_BIT' specifies that an image /can/ be used --     as @dstImage@ for the---     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+--     'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+--     and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. -- -- -   'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if --     'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' is also set, an image view /can/@@ -102,10 +101,10 @@ --     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. --     If 'FORMAT_FEATURE_BLIT_SRC_BIT' is also set, an image can be used --     as the @srcImage@ to---     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@---     of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only---     be exposed for formats that also support the+--     'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+--     and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a+--     @filter@ of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit+--     /must/ only be exposed for formats that also support the --     'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_BLIT_SRC_BIT'. -- --     If the format being queried is a depth\/stencil format, this bit@@ -122,13 +121,13 @@ -- -- -   'FORMAT_FEATURE_TRANSFER_SRC_BIT' specifies that an image /can/ be --     used as a source image for---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. -- -- -   'FORMAT_FEATURE_TRANSFER_DST_BIT' specifies that an image /can/ be --     used as a destination image for---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> --     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>. -- -- -   'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies --     'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with@@ -150,7 +149,7 @@ -- -- -   'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an --     application /can/ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     using this format as a source, and that an image of this format --     /can/ be used with a --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -165,7 +164,7 @@ -- -- -   'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' specifies that an --     application /can/ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     using this format as a source, and that an image of this format --     /can/ be used with a --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -176,12 +175,12 @@ --     neither 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' nor --     'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the application --     /must/ not define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     using this format as a source. -- -- -   'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' --     specifies that an application /can/ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     using this format as a source with @chromaFilter@ set to --     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. --@@ -191,7 +190,7 @@ -- -- -   'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' --     specifies that reconstruction is explicit, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>. --     If this bit is not present, reconstruction is implicit by default. -- -- -   'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'@@ -212,11 +211,11 @@ -- -- -   'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an --     image view /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. -- -- -   'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies --     that an image view /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. --     An implementation /must/ not set this feature for formats with --     numeric type other than @*UINT@, or set it as a buffer feature. --@@ -247,11 +246,11 @@ -- -   'FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' --     specifies that the format /can/ be used as the vertex format when --     creating an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure> --     ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). --     This format /can/ also be used as the vertex format in host memory --     when doing---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> --     builds. -- -- = See Also@@ -262,11 +261,11 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' specifies that an image view /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>. pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT                        = FormatFeatureFlagBits 0x00000001 -- | 'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view /can/ be -- used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. pattern FORMAT_FEATURE_STORAGE_IMAGE_BIT                        = FormatFeatureFlagBits 0x00000002 -- | 'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image view -- /can/ be used as storage image that supports atomic operations.@@ -303,12 +302,12 @@ pattern FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT             = FormatFeatureFlagBits 0x00000200 -- | 'FORMAT_FEATURE_BLIT_SRC_BIT' specifies that an image /can/ be used as -- @srcImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. pattern FORMAT_FEATURE_BLIT_SRC_BIT                             = FormatFeatureFlagBits 0x00000400 -- | 'FORMAT_FEATURE_BLIT_DST_BIT' specifies that an image /can/ be used as -- @dstImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. pattern FORMAT_FEATURE_BLIT_DST_BIT                             = FormatFeatureFlagBits 0x00000800 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if@@ -317,9 +316,10 @@ -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to -- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If -- 'FORMAT_FEATURE_BLIT_SRC_BIT' is also set, an image can be used as the--- @srcImage@ to 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'--- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@--- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be+-- @srcImage@ to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@ of+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be -- exposed for formats that also support the -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_BLIT_SRC_BIT'. --@@ -337,21 +337,21 @@ pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT          = FormatFeatureFlagBits 0x00001000 -- | 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- an image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. -- An implementation /must/ not set this feature for formats with numeric -- type other than @*UINT@, or set it as a buffer feature. pattern FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits 0x40000000 -- | 'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image -- view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. pattern FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT             = FormatFeatureFlagBits 0x01000000 -- | 'FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' specifies -- that the format /can/ be used as the vertex format when creating an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure> -- ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). -- This format /can/ also be used as the vertex format in host memory when -- doing--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- builds. pattern FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits 0x20000000 -- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"@@ -365,7 +365,7 @@ pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT          = FormatFeatureFlagBits 0x00010000 -- | 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format /can/ be -- used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -376,7 +376,7 @@ -- neither 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' nor -- 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the application -- /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source. pattern FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT               = FormatFeatureFlagBits 0x00800000 -- | 'FORMAT_FEATURE_DISJOINT_BIT' specifies that a multi-planar image /can/@@ -397,7 +397,7 @@   FormatFeatureFlagBits 0x00200000 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>. -- If this bit is not present, reconstruction is implicit by default. pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT =   FormatFeatureFlagBits 0x00100000@@ -408,13 +408,13 @@   FormatFeatureFlagBits 0x00080000 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' -- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source with @chromaFilter@ set to -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = FormatFeatureFlagBits 0x00040000 -- | 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format /can/ be -- used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -429,13 +429,13 @@ pattern FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits 0x00020000 -- | 'FORMAT_FEATURE_TRANSFER_DST_BIT' specifies that an image /can/ be used -- as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>. pattern FORMAT_FEATURE_TRANSFER_DST_BIT            = FormatFeatureFlagBits 0x00008000 -- | 'FORMAT_FEATURE_TRANSFER_SRC_BIT' specifies that an image /can/ be used -- as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. pattern FORMAT_FEATURE_TRANSFER_SRC_BIT            = FormatFeatureFlagBits 0x00004000  conNameFormatFeatureFlagBits :: String
src/Vulkan/Core10/Enums/FrontFace.hs view
@@ -25,6 +25,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT' newtype FrontFace = FrontFace Int32   deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs view
@@ -37,7 +37,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', -- 'ImageAspectFlags', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo' newtype ImageAspectFlagBits = ImageAspectFlagBits Flags@@ -50,7 +50,7 @@ -- | 'IMAGE_ASPECT_STENCIL_BIT' specifies the stencil aspect. pattern IMAGE_ASPECT_STENCIL_BIT            = ImageAspectFlagBits 0x00000004 -- | 'IMAGE_ASPECT_METADATA_BIT' specifies the metadata aspect, used for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory sparse resource>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory sparse resource> -- operations. pattern IMAGE_ASPECT_METADATA_BIT           = ImageAspectFlagBits 0x00000008 -- | 'IMAGE_ASPECT_NONE_KHR' specifies no image aspect, or the image aspect
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -40,9 +40,9 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-physicalfeatures Sparse Physical Device Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalfeatures Sparse Physical Device Features> -- for more details. -- -- = See Also@@ -69,7 +69,7 @@ -- | 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that the image /can/ be used -- to create a 'Vulkan.Core10.Handles.ImageView' with a different format -- from the image. For--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- formats, 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that a -- 'Vulkan.Core10.Handles.ImageView' can be created of a /plane/ of the -- image.@@ -81,7 +81,7 @@ pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT                  = ImageCreateFlagBits 0x00000010 -- | 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM' specifies that an -- image /can/ be used in a render pass with non-zero--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>. -- In a renderpass with non-zero offsets, fragment density map attachments, -- input attachments, color attachments, depth\/stencil attachment, resolve -- attachments, and preserve attachments /must/ be created with@@ -107,14 +107,14 @@ --     additionally be read by the device during --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT' --     if---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess ::subsampledCoarseReconstructionEarlyAccess>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess ::subsampledCoarseReconstructionEarlyAccess> --     is 'Vulkan.Core10.FundamentalTypes.TRUE' and the sampler was created --     with @flags@ containing --     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'. -- -- -   Image data read with load operations are resampled to the fragment --     density of the render pass if---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledLoads ::subsampledLoads>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledLoads ::subsampledLoads> --     is 'Vulkan.Core10.FundamentalTypes.TRUE'. Otherwise, values of image --     data are undefined. --@@ -126,10 +126,10 @@ -- sample locations when used as a depth\/stencil attachment. pattern IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = ImageCreateFlagBits 0x00001000 -- | 'IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' specifies that the image is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>. pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV                = ImageCreateFlagBits 0x00002000 -- | 'IMAGE_CREATE_DISJOINT_BIT' specifies that an image with a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- /must/ have each plane separately bound to memory, rather than having a -- single memory binding for the whole image; the presence of this bit -- distinguishes a /disjoint image/ from an image without this bit set.@@ -166,13 +166,13 @@ -- creation parameters and aliased to the same memory /can/ interpret the -- contents of the memory consistently with each other, subject to the -- rules described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section. This flag further specifies that each plane of a /disjoint/ -- image /can/ share an in-memory non-linear representation with -- single-plane images, and that a single-plane image /can/ share an -- in-memory non-linear representation with a plane of a multi-planar -- disjoint image, according to the rules in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>. -- If the @pNext@ chain includes a -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo' -- or
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -9,12 +9,12 @@                                                     , IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                                                     , IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                                                     , IMAGE_LAYOUT_PREINITIALIZED-                                                    , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR-                                                    , IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR                                                     , IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR                                                     , IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT                                                     , IMAGE_LAYOUT_SHARED_PRESENT_KHR                                                     , IMAGE_LAYOUT_PRESENT_SRC_KHR+                                                    , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL+                                                    , IMAGE_LAYOUT_READ_ONLY_OPTIMAL                                                     , IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL                                                     , IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL                                                     , IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL@@ -46,15 +46,15 @@ -- indicates which image layout the image subresource(s) are considered to -- be in when the image will be accessed. For transfer commands, this is a -- parameter to the command (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies>). -- For use as a framebuffer attachment, this is a member in the -- substructures of the 'Vulkan.Core10.Pass.RenderPassCreateInfo' (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass Render Pass>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass Render Pass>). -- For use in a descriptor set, this is a member in the -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structure (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates>). -- -- = See Also --@@ -65,18 +65,18 @@ -- 'Vulkan.Core10.Pass.AttachmentReference', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',@@ -127,7 +127,7 @@ pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL         = ImageLayout 5 -- | 'IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL' /must/ only be used as a source -- image of a transfer command (see the definition of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >). -- This layout is valid only for image subresources of images created with -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'@@ -148,22 +148,15 @@ -- by the host, and hence the data /can/ be written to memory immediately, -- without first executing a layout transition. Currently, -- 'IMAGE_LAYOUT_PREINITIALIZED' is only useful with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear> -- images because there is not a standard layout defined for -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' images. pattern IMAGE_LAYOUT_PREINITIALIZED                   = ImageLayout 8--- | 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' specifies a layout that /must/--- only be used with attachment accesses in the graphics pipeline.-pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR           = ImageLayout 1000314001--- | 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' specifies a layout allowing read--- only access as an attachment, or in shaders as a sampled image, combined--- image\/sampler, or input attachment.-pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR            = ImageLayout 1000314000 -- | 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' /must/ only -- be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>. -- This layout is valid only for image subresources of images created with -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'@@ -186,6 +179,13 @@ -- transitioned away from this layout after calling -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR'. pattern IMAGE_LAYOUT_PRESENT_SRC_KHR                  = ImageLayout 1000001002+-- | 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL' specifies a layout that /must/ only be+-- used with attachment accesses in the graphics pipeline.+pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL               = ImageLayout 1000314001+-- | 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL' specifies a layout allowing read only+-- access as an attachment, or in shaders as a sampled image, combined+-- image\/sampler, or input attachment.+pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL                = ImageLayout 1000314000 -- | 'IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' specifies a layout for the -- stencil aspect of a depth\/stencil format image allowing read-only -- access as a stencil attachment or in shaders as a sampled image,@@ -229,12 +229,12 @@              IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,              IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,              IMAGE_LAYOUT_PREINITIALIZED,-             IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,-             IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,              IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,              IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,              IMAGE_LAYOUT_SHARED_PRESENT_KHR,              IMAGE_LAYOUT_PRESENT_SRC_KHR,+             IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,+             IMAGE_LAYOUT_READ_ONLY_OPTIMAL,              IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,              IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,              IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,@@ -259,12 +259,12 @@   , (IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL            , "TRANSFER_SRC_OPTIMAL")   , (IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL            , "TRANSFER_DST_OPTIMAL")   , (IMAGE_LAYOUT_PREINITIALIZED                  , "PREINITIALIZED")-  , (IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR          , "ATTACHMENT_OPTIMAL_KHR")-  , (IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR           , "READ_ONLY_OPTIMAL_KHR")   , (IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR")   , (IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, "FRAGMENT_DENSITY_MAP_OPTIMAL_EXT")   , (IMAGE_LAYOUT_SHARED_PRESENT_KHR              , "SHARED_PRESENT_KHR")   , (IMAGE_LAYOUT_PRESENT_SRC_KHR                 , "PRESENT_SRC_KHR")+  , (IMAGE_LAYOUT_ATTACHMENT_OPTIMAL              , "ATTACHMENT_OPTIMAL")+  , (IMAGE_LAYOUT_READ_ONLY_OPTIMAL               , "READ_ONLY_OPTIMAL")   , (IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL       , "STENCIL_READ_ONLY_OPTIMAL")   , (IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL      , "STENCIL_ATTACHMENT_OPTIMAL")   , (IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL         , "DEPTH_READ_ONLY_OPTIMAL")
src/Vulkan/Core10/Enums/ImageTiling.hs view
@@ -38,7 +38,7 @@ pattern IMAGE_TILING_LINEAR                  = ImageTiling 1 -- | 'IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' indicates that the image’s tiling -- is defined by a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>. -- The modifier is specified at image creation with -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT' -- or
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -67,7 +67,7 @@ pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT             = ImageUsageFlagBits 0x00000020 -- | 'IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' specifies that implementations -- /may/ support using--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory memory allocations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory memory allocations> -- with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' -- to back an image with this usage. This bit /can/ be set for any image@@ -87,14 +87,14 @@ -- | 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- the image /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' -- suitable for use as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = ImageUsageFlagBits 0x00000100 -- | 'IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that the image -- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- use as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>. pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT             = ImageUsageFlagBits 0x00000200  conNameImageUsageFlagBits :: String
src/Vulkan/Core10/Enums/LogicOp.hs view
@@ -89,7 +89,7 @@ -- -- The result of the logical operation is then written to the color -- attachment as controlled by the component write mask, described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendoperations Blend Operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendoperations Blend Operations>. -- -- = See Also --
src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs view
@@ -86,7 +86,7 @@ -- 'MEMORY_PROPERTY_HOST_VISIBLE_BIT' set. Additionally, the object’s -- backing memory /may/ be provided by the implementation lazily as -- specified in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>. pattern MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT    = MemoryPropertyFlagBits 0x00000010 -- | 'MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV' bit specifies that external -- devices can access this memory directly.
src/Vulkan/Core10/Enums/ObjectType.hs view
@@ -27,7 +27,6 @@                                                   , OBJECT_TYPE_FRAMEBUFFER                                                   , OBJECT_TYPE_COMMAND_POOL                                                   , OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA-                                                  , OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT                                                   , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV                                                   , OBJECT_TYPE_DEFERRED_OPERATION_KHR                                                   , OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL@@ -42,6 +41,7 @@                                                   , OBJECT_TYPE_DISPLAY_KHR                                                   , OBJECT_TYPE_SWAPCHAIN_KHR                                                   , OBJECT_TYPE_SURFACE_KHR+                                                  , OBJECT_TYPE_PRIVATE_DATA_SLOT                                                   , OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE                                                   , OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION                                                   , ..@@ -145,7 +145,7 @@ -- +-----------------------------------------------+-----------------------------------------------------------+ -- | 'OBJECT_TYPE_DEFERRED_OPERATION_KHR'          | 'Vulkan.Extensions.Handles.DeferredOperationKHR'          | -- +-----------------------------------------------+-----------------------------------------------------------+--- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT'           | 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'            |+-- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT'               | 'Vulkan.Core13.Handles.PrivateDataSlot'                   | -- +-----------------------------------------------+-----------------------------------------------------------+ -- -- 'ObjectType' and Vulkan Handle Relationship@@ -156,7 +156,9 @@ -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectTagInfoEXT', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT' newtype ObjectType = ObjectType Int32   deriving newtype (Eq, Ord, Storable, Zero)@@ -215,8 +217,6 @@ pattern OBJECT_TYPE_COMMAND_POOL                    = ObjectType 25 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA" pattern OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA       = ObjectType 1000366000--- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT"-pattern OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT           = ObjectType 1000295000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV" pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV     = ObjectType 1000277000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"@@ -245,6 +245,8 @@ pattern OBJECT_TYPE_SWAPCHAIN_KHR                   = ObjectType 1000001000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SURFACE_KHR" pattern OBJECT_TYPE_SURFACE_KHR                     = ObjectType 1000000000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT"+pattern OBJECT_TYPE_PRIVATE_DATA_SLOT               = ObjectType 1000295000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE" pattern OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE      = ObjectType 1000085000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"@@ -276,7 +278,6 @@              OBJECT_TYPE_FRAMEBUFFER,              OBJECT_TYPE_COMMAND_POOL,              OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,-             OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,              OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,              OBJECT_TYPE_DEFERRED_OPERATION_KHR,              OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,@@ -291,6 +292,7 @@              OBJECT_TYPE_DISPLAY_KHR,              OBJECT_TYPE_SWAPCHAIN_KHR,              OBJECT_TYPE_SURFACE_KHR,+             OBJECT_TYPE_PRIVATE_DATA_SLOT,              OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,              OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: ObjectType #-} @@ -329,7 +331,6 @@   , (OBJECT_TYPE_FRAMEBUFFER                    , "FRAMEBUFFER")   , (OBJECT_TYPE_COMMAND_POOL                   , "COMMAND_POOL")   , (OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA      , "BUFFER_COLLECTION_FUCHSIA")-  , (OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT          , "PRIVATE_DATA_SLOT_EXT")   , (OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV    , "INDIRECT_COMMANDS_LAYOUT_NV")   , (OBJECT_TYPE_DEFERRED_OPERATION_KHR         , "DEFERRED_OPERATION_KHR")   , (OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL, "PERFORMANCE_CONFIGURATION_INTEL")@@ -344,6 +345,7 @@   , (OBJECT_TYPE_DISPLAY_KHR                    , "DISPLAY_KHR")   , (OBJECT_TYPE_SWAPCHAIN_KHR                  , "SWAPCHAIN_KHR")   , (OBJECT_TYPE_SURFACE_KHR                    , "SURFACE_KHR")+  , (OBJECT_TYPE_PRIVATE_DATA_SLOT              , "PRIVATE_DATA_SLOT")   , (OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE     , "DESCRIPTOR_UPDATE_TEMPLATE")   , (OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION       , "SAMPLER_YCBCR_CONVERSION")   ]
src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs view
@@ -1,7 +1,7 @@ {-# language CPP #-} -- No documentation found for Chapter "PipelineCacheCreateFlagBits" module Vulkan.Core10.Enums.PipelineCacheCreateFlagBits  ( PipelineCacheCreateFlags-                                                        , PipelineCacheCreateFlagBits( PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT+                                                        , PipelineCacheCreateFlagBits( PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT                                                                                      , ..                                                                                      )                                                         ) where@@ -29,23 +29,23 @@ newtype PipelineCacheCreateFlagBits = PipelineCacheCreateFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT' specifies that--- all commands that modify the created--- 'Vulkan.Core10.Handles.PipelineCache' will be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- | 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT' specifies that all+-- commands that modify the created 'Vulkan.Core10.Handles.PipelineCache'+-- will be+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>. -- When set, the implementation /may/ skip any unnecessary processing -- needed to support simultaneous modification from multiple threads where -- allowed.-pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = PipelineCacheCreateFlagBits 0x00000001+pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = PipelineCacheCreateFlagBits 0x00000001  conNamePipelineCacheCreateFlagBits :: String conNamePipelineCacheCreateFlagBits = "PipelineCacheCreateFlagBits"  enumPrefixPipelineCacheCreateFlagBits :: String-enumPrefixPipelineCacheCreateFlagBits = "PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"+enumPrefixPipelineCacheCreateFlagBits = "PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"  showTablePipelineCacheCreateFlagBits :: [(PipelineCacheCreateFlagBits, String)]-showTablePipelineCacheCreateFlagBits = [(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, "")]+showTablePipelineCacheCreateFlagBits = [(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, "")]  instance Show PipelineCacheCreateFlagBits where   showsPrec = enumShowsPrec enumPrefixPipelineCacheCreateFlagBits
src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs view
@@ -33,7 +33,7 @@ -- indicates that access to color and input attachments will have implicit -- framebuffer-local memory dependencies, allowing applications to express -- custom blending operations in a fragment shader. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM =   PipelineColorBlendStateCreateFlagBits 0x00000001
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -5,8 +5,6 @@                                                                            , PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                                                                            , PIPELINE_CREATE_DERIVATIVE_BIT                                                                            , PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV-                                                                           , PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT-                                                                           , PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT                                                                            , PIPELINE_CREATE_LIBRARY_BIT_KHR                                                                            , PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                                                                            , PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR@@ -21,6 +19,8 @@                                                                            , PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR                                                                            , PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT                                                                            , PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+                                                                           , PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT+                                                                           , PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT                                                                            , PIPELINE_CREATE_DISPATCH_BASE_BIT                                                                            , PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT                                                                            , ..@@ -134,21 +134,20 @@ -- -- -   'PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that the --     pipeline can be used in combination with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#device-generated-commands>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>. ----- -   'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'---     specifies that pipeline creation will fail if a compile is required---     for creation of a valid 'Vulkan.Core10.Handles.Pipeline' object;---     'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT' will be+-- -   'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' specifies+--     that pipeline creation will fail if a compile is required for+--     creation of a valid 'Vulkan.Core10.Handles.Pipeline' object;+--     'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' will be --     returned by pipeline creation, and the --     'Vulkan.Core10.Handles.Pipeline' will be set to --     'Vulkan.Core10.APIConstants.NULL_HANDLE'. -- -- -   When creating multiple pipelines,---     'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' specifies that---     control will be returned to the application on failure of the---     corresponding pipeline rather than continuing to create additional---     pipelines.+--     'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' specifies that control+--     will be returned to the application on failure of the corresponding+--     pipeline rather than continuing to create additional pipelines. -- -- -   'PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' specifies that the --     pipeline is allowed to use @OpTraceRayMotionNV@.@@ -164,7 +163,7 @@ -- It is valid to set both 'PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT' and -- 'PIPELINE_CREATE_DERIVATIVE_BIT'. This allows a pipeline to be both a -- parent and possibly a child in a pipeline hierarchy. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives> -- for more information. -- -- = See Also@@ -182,10 +181,6 @@ pattern PIPELINE_CREATE_DERIVATIVE_BIT                              = PipelineCreateFlagBits 0x00000004 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV" pattern PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV             = PipelineCreateFlagBits 0x00100000--- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"-pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT             = PipelineCreateFlagBits 0x00000200--- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"-pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT   = PipelineCreateFlagBits 0x00000100 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" pattern PIPELINE_CREATE_LIBRARY_BIT_KHR                             = PipelineCreateFlagBits 0x00000800 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"@@ -214,6 +209,10 @@ pattern PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PipelineCreateFlagBits 0x00400000 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" pattern PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineCreateFlagBits 0x00200000+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"+pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT                 = PipelineCreateFlagBits 0x00000200+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"+pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT       = PipelineCreateFlagBits 0x00000100 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT" pattern PIPELINE_CREATE_DISPATCH_BASE_BIT                           = PipelineCreateFlagBits 0x00000010 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"@@ -227,17 +226,15 @@  showTablePipelineCreateFlagBits :: [(PipelineCreateFlagBits, String)] showTablePipelineCreateFlagBits =-  [ (PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                 , "DISABLE_OPTIMIZATION_BIT")-  , (PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                    , "ALLOW_DERIVATIVES_BIT")-  , (PIPELINE_CREATE_DERIVATIVE_BIT                           , "DERIVATIVE_BIT")-  , (PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV          , "RAY_TRACING_ALLOW_MOTION_BIT_NV")-  , (PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT          , "EARLY_RETURN_ON_FAILURE_BIT_EXT")-  , (PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT, "FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT")-  , (PIPELINE_CREATE_LIBRARY_BIT_KHR                          , "LIBRARY_BIT_KHR")-  , (PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                 , "INDIRECT_BINDABLE_BIT_NV")-  , (PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR , "CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR")-  , (PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR               , "CAPTURE_STATISTICS_BIT_KHR")-  , (PIPELINE_CREATE_DEFER_COMPILE_BIT_NV                     , "DEFER_COMPILE_BIT_NV")+  [ (PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                , "DISABLE_OPTIMIZATION_BIT")+  , (PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                   , "ALLOW_DERIVATIVES_BIT")+  , (PIPELINE_CREATE_DERIVATIVE_BIT                          , "DERIVATIVE_BIT")+  , (PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV         , "RAY_TRACING_ALLOW_MOTION_BIT_NV")+  , (PIPELINE_CREATE_LIBRARY_BIT_KHR                         , "LIBRARY_BIT_KHR")+  , (PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                , "INDIRECT_BINDABLE_BIT_NV")+  , (PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, "CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR")+  , (PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR              , "CAPTURE_STATISTICS_BIT_KHR")+  , (PIPELINE_CREATE_DEFER_COMPILE_BIT_NV                    , "DEFER_COMPILE_BIT_NV")   , ( PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR     , "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"     )@@ -255,8 +252,10 @@   , ( PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR     , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"     )-  , (PIPELINE_CREATE_DISPATCH_BASE_BIT               , "DISPATCH_BASE_BIT")-  , (PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, "VIEW_INDEX_FROM_DEVICE_INDEX_BIT")+  , (PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT          , "EARLY_RETURN_ON_FAILURE_BIT")+  , (PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, "FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT")+  , (PIPELINE_CREATE_DISPATCH_BASE_BIT                    , "DISPATCH_BASE_BIT")+  , (PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT     , "VIEW_INDEX_FROM_DEVICE_INDEX_BIT")   ]  instance Show PipelineCreateFlagBits where
src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs view
@@ -34,7 +34,7 @@ -- indicates that access to the stencil aspects of depth\/stencil and input -- attachments will have implicit framebuffer-local memory dependencies. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM =   PipelineDepthStencilStateCreateFlagBits 0x00000002@@ -42,7 +42,7 @@ -- indicates that access to the depth aspects of depth\/stencil and input -- attachments will have implicit framebuffer-local memory dependencies. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM =   PipelineDepthStencilStateCreateFlagBits 0x00000001
src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs view
@@ -1,8 +1,8 @@ {-# language CPP #-} -- No documentation found for Chapter "PipelineShaderStageCreateFlagBits" module Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits  ( PipelineShaderStageCreateFlags-                                                              , PipelineShaderStageCreateFlagBits( PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT-                                                                                                 , PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT+                                                              , PipelineShaderStageCreateFlagBits( PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT+                                                                                                 , PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT                                                                                                  , ..                                                                                                  )                                                               ) where@@ -27,17 +27,19 @@ -- -- Note ----- If 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'--- and 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' are--- specified and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>+-- If+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+-- and+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+-- are specified and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize> -- does not equal--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize> -- and no--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-required-subgroup-size required subgroup size>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-required-subgroup-size required subgroup size> -- is specified, then the only way to guarantee that the \'X\' dimension of -- the local workgroup size is a multiple of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize> -- is to make it a multiple of @maxSubgroupSize@. Under these conditions, -- you are guaranteed full subgroups but not any particular subgroup size. --@@ -48,15 +50,15 @@ newtype PipelineShaderStageCreateFlagBits = PipelineShaderStageCreateFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies--- that the subgroup sizes /must/ be launched with all invocations active--- in the compute stage.-pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT      = PipelineShaderStageCreateFlagBits 0x00000002--- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'--- specifies that the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' specifies that+-- the subgroup sizes /must/ be launched with all invocations active in the+-- compute stage.+pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT      = PipelineShaderStageCreateFlagBits 0x00000002+-- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' specifies+-- that the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize> -- /may/ vary in the shader stage.-pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = PipelineShaderStageCreateFlagBits 0x00000001+pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = PipelineShaderStageCreateFlagBits 0x00000001  conNamePipelineShaderStageCreateFlagBits :: String conNamePipelineShaderStageCreateFlagBits = "PipelineShaderStageCreateFlagBits"@@ -66,8 +68,8 @@  showTablePipelineShaderStageCreateFlagBits :: [(PipelineShaderStageCreateFlagBits, String)] showTablePipelineShaderStageCreateFlagBits =-  [ (PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT     , "REQUIRE_FULL_SUBGROUPS_BIT_EXT")-  , (PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT")+  [ (PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT     , "REQUIRE_FULL_SUBGROUPS_BIT")+  , (PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT, "ALLOW_VARYING_SUBGROUP_SIZE_BIT")   ]  instance Show PipelineShaderStageCreateFlagBits where
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -18,7 +18,6 @@                                                                          , PIPELINE_STAGE_HOST_BIT                                                                          , PIPELINE_STAGE_ALL_GRAPHICS_BIT                                                                          , PIPELINE_STAGE_ALL_COMMANDS_BIT-                                                                         , PIPELINE_STAGE_NONE_KHR                                                                          , PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV                                                                          , PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                          , PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT@@ -28,6 +27,7 @@                                                                          , PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR                                                                          , PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT                                                                          , PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT+                                                                         , PIPELINE_STAGE_NONE                                                                          , ..                                                                          )                                                   ) where@@ -50,7 +50,7 @@ -- = Description -- -- These values all have the same meaning as the equivalently named values--- for 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlags2KHR'.+-- for 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'. -- -- = See Also --@@ -67,81 +67,81 @@ -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlags' set to @0@ when -- specified in the second synchronization scope, but specifies no stage of -- execution when specified in the first scope.-pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT                      = PipelineStageFlagBits 0x00000001+pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT                    = PipelineStageFlagBits 0x00000001 -- | 'PIPELINE_STAGE_DRAW_INDIRECT_BIT' specifies the stage of the pipeline -- where @VkDrawIndirect*@ \/ @VkDispatchIndirect*@ \/ -- @VkTraceRaysIndirect*@ data structures are consumed. This stage also -- includes reading commands written by -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV'.-pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT                    = PipelineStageFlagBits 0x00000002+pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT                  = PipelineStageFlagBits 0x00000002 -- | 'PIPELINE_STAGE_VERTEX_INPUT_BIT' specifies the stage of the pipeline -- where vertex and index buffers are consumed.-pattern PIPELINE_STAGE_VERTEX_INPUT_BIT                     = PipelineStageFlagBits 0x00000004+pattern PIPELINE_STAGE_VERTEX_INPUT_BIT                   = PipelineStageFlagBits 0x00000004 -- | 'PIPELINE_STAGE_VERTEX_SHADER_BIT' specifies the vertex shader stage.-pattern PIPELINE_STAGE_VERTEX_SHADER_BIT                    = PipelineStageFlagBits 0x00000008+pattern PIPELINE_STAGE_VERTEX_SHADER_BIT                  = PipelineStageFlagBits 0x00000008 -- | 'PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' specifies the -- tessellation control shader stage.-pattern PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT      = PipelineStageFlagBits 0x00000010+pattern PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT    = PipelineStageFlagBits 0x00000010 -- | 'PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' specifies the -- tessellation evaluation shader stage.-pattern PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT   = PipelineStageFlagBits 0x00000020+pattern PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = PipelineStageFlagBits 0x00000020 -- | 'PIPELINE_STAGE_GEOMETRY_SHADER_BIT' specifies the geometry shader -- stage.-pattern PIPELINE_STAGE_GEOMETRY_SHADER_BIT                  = PipelineStageFlagBits 0x00000040+pattern PIPELINE_STAGE_GEOMETRY_SHADER_BIT                = PipelineStageFlagBits 0x00000040 -- | 'PIPELINE_STAGE_FRAGMENT_SHADER_BIT' specifies the fragment shader -- stage.-pattern PIPELINE_STAGE_FRAGMENT_SHADER_BIT                  = PipelineStageFlagBits 0x00000080+pattern PIPELINE_STAGE_FRAGMENT_SHADER_BIT                = PipelineStageFlagBits 0x00000080 -- | 'PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations> -- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT             = PipelineStageFlagBits 0x00000100+pattern PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT           = PipelineStageFlagBits 0x00000100 -- | 'PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations> -- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT              = PipelineStageFlagBits 0x00000200+pattern PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT            = PipelineStageFlagBits 0x00000200 -- | 'PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' specifies the stage of the -- pipeline after blending where the final color values are output from the -- pipeline. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations> -- and multisample resolve operations for framebuffer attachments with a -- color or depth\/stencil format.-pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT          = PipelineStageFlagBits 0x00000400+pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT        = PipelineStageFlagBits 0x00000400 -- | 'PIPELINE_STAGE_COMPUTE_SHADER_BIT' specifies the execution of a compute -- shader.-pattern PIPELINE_STAGE_COMPUTE_SHADER_BIT                   = PipelineStageFlagBits 0x00000800+pattern PIPELINE_STAGE_COMPUTE_SHADER_BIT                 = PipelineStageFlagBits 0x00000800 -- | #synchronization-pipeline-stages-transfer# 'PIPELINE_STAGE_TRANSFER_BIT' -- specifies the following commands: -- -- -   All---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>, --     including --     'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults' ----- -   'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'+-- -   'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+--     and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' ----- -   'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'+-- -   'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdResolveImage2'+--     and 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage' -- -- -   All---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>, --     with the exception of --     'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'-pattern PIPELINE_STAGE_TRANSFER_BIT                         = PipelineStageFlagBits 0x00001000+pattern PIPELINE_STAGE_TRANSFER_BIT                       = PipelineStageFlagBits 0x00001000 -- | 'PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT' is equivalent to -- 'PIPELINE_STAGE_ALL_COMMANDS_BIT' with -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlags' set to @0@ when -- specified in the first synchronization scope, but specifies no stage of -- execution when specified in the second scope.-pattern PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                   = PipelineStageFlagBits 0x00002000+pattern PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                 = PipelineStageFlagBits 0x00002000 -- | 'PIPELINE_STAGE_HOST_BIT' specifies a pseudo-stage indicating execution -- on the host of reads\/writes of device memory. This stage is not invoked -- by any commands recorded in a command buffer.-pattern PIPELINE_STAGE_HOST_BIT                             = PipelineStageFlagBits 0x00004000+pattern PIPELINE_STAGE_HOST_BIT                           = PipelineStageFlagBits 0x00004000 -- | 'PIPELINE_STAGE_ALL_GRAPHICS_BIT' specifies the execution of all -- graphics pipeline stages, and is equivalent to the logical OR of: --@@ -176,39 +176,37 @@ -- -   'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'-pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT                     = PipelineStageFlagBits 0x00008000+pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT                   = PipelineStageFlagBits 0x00008000 -- | 'PIPELINE_STAGE_ALL_COMMANDS_BIT' specifies all operations performed by -- all commands supported on the queue it is used with.-pattern PIPELINE_STAGE_ALL_COMMANDS_BIT                     = PipelineStageFlagBits 0x00010000--- | 'PIPELINE_STAGE_NONE_KHR' specifies no stages of execution.-pattern PIPELINE_STAGE_NONE_KHR                             = PipelineStageFlagBits 0x00000000+pattern PIPELINE_STAGE_ALL_COMMANDS_BIT                   = PipelineStageFlagBits 0x00010000 -- | 'PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the -- pipeline where device-side preprocessing for generated commands via -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- is handled.-pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV            = PipelineStageFlagBits 0x00020000+pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV          = PipelineStageFlagBits 0x00020000 -- | 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies the -- stage of the pipeline where the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> -- is read to determine the fragment shading rate for portions of a -- rasterized primitive. pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits 0x00400000 -- | 'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage of -- the pipeline where the fragment density map is read to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT     = PipelineStageFlagBits 0x00800000+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.+pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT   = PipelineStageFlagBits 0x00800000 -- | 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV                   = PipelineStageFlagBits 0x00100000+pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV                 = PipelineStageFlagBits 0x00100000 -- | 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV                   = PipelineStageFlagBits 0x00080000+pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV                 = PipelineStageFlagBits 0x00080000 -- | 'PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages, via -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV' , -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR', or -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'-pattern PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR           = PipelineStageFlagBits 0x00200000+pattern PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR         = PipelineStageFlagBits 0x00200000 -- | 'PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',@@ -225,11 +223,13 @@ pattern PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits 0x02000000 -- | 'PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of -- the pipeline where the predicate of conditional rendering is consumed.-pattern PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT        = PipelineStageFlagBits 0x00040000+pattern PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT      = PipelineStageFlagBits 0x00040000 -- | 'PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the -- pipeline where vertex attribute output values are written to the -- transform feedback buffers.-pattern PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT           = PipelineStageFlagBits 0x01000000+pattern PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT         = PipelineStageFlagBits 0x01000000+-- | 'PIPELINE_STAGE_NONE' specifies no stages of execution.+pattern PIPELINE_STAGE_NONE                               = PipelineStageFlagBits 0x00000000  conNamePipelineStageFlagBits :: String conNamePipelineStageFlagBits = "PipelineStageFlagBits"@@ -239,33 +239,33 @@  showTablePipelineStageFlagBits :: [(PipelineStageFlagBits, String)] showTablePipelineStageFlagBits =-  [ (PIPELINE_STAGE_TOP_OF_PIPE_BIT                     , "TOP_OF_PIPE_BIT")-  , (PIPELINE_STAGE_DRAW_INDIRECT_BIT                   , "DRAW_INDIRECT_BIT")-  , (PIPELINE_STAGE_VERTEX_INPUT_BIT                    , "VERTEX_INPUT_BIT")-  , (PIPELINE_STAGE_VERTEX_SHADER_BIT                   , "VERTEX_SHADER_BIT")-  , (PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT     , "TESSELLATION_CONTROL_SHADER_BIT")-  , (PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT  , "TESSELLATION_EVALUATION_SHADER_BIT")-  , (PIPELINE_STAGE_GEOMETRY_SHADER_BIT                 , "GEOMETRY_SHADER_BIT")-  , (PIPELINE_STAGE_FRAGMENT_SHADER_BIT                 , "FRAGMENT_SHADER_BIT")-  , (PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT            , "EARLY_FRAGMENT_TESTS_BIT")-  , (PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT             , "LATE_FRAGMENT_TESTS_BIT")-  , (PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT         , "COLOR_ATTACHMENT_OUTPUT_BIT")-  , (PIPELINE_STAGE_COMPUTE_SHADER_BIT                  , "COMPUTE_SHADER_BIT")-  , (PIPELINE_STAGE_TRANSFER_BIT                        , "TRANSFER_BIT")-  , (PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                  , "BOTTOM_OF_PIPE_BIT")-  , (PIPELINE_STAGE_HOST_BIT                            , "HOST_BIT")-  , (PIPELINE_STAGE_ALL_GRAPHICS_BIT                    , "ALL_GRAPHICS_BIT")-  , (PIPELINE_STAGE_ALL_COMMANDS_BIT                    , "ALL_COMMANDS_BIT")-  , (PIPELINE_STAGE_NONE_KHR                            , "NONE_KHR")-  , (PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV           , "COMMAND_PREPROCESS_BIT_NV")+  [ (PIPELINE_STAGE_TOP_OF_PIPE_BIT                   , "TOP_OF_PIPE_BIT")+  , (PIPELINE_STAGE_DRAW_INDIRECT_BIT                 , "DRAW_INDIRECT_BIT")+  , (PIPELINE_STAGE_VERTEX_INPUT_BIT                  , "VERTEX_INPUT_BIT")+  , (PIPELINE_STAGE_VERTEX_SHADER_BIT                 , "VERTEX_SHADER_BIT")+  , (PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT   , "TESSELLATION_CONTROL_SHADER_BIT")+  , (PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, "TESSELLATION_EVALUATION_SHADER_BIT")+  , (PIPELINE_STAGE_GEOMETRY_SHADER_BIT               , "GEOMETRY_SHADER_BIT")+  , (PIPELINE_STAGE_FRAGMENT_SHADER_BIT               , "FRAGMENT_SHADER_BIT")+  , (PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT          , "EARLY_FRAGMENT_TESTS_BIT")+  , (PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT           , "LATE_FRAGMENT_TESTS_BIT")+  , (PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT       , "COLOR_ATTACHMENT_OUTPUT_BIT")+  , (PIPELINE_STAGE_COMPUTE_SHADER_BIT                , "COMPUTE_SHADER_BIT")+  , (PIPELINE_STAGE_TRANSFER_BIT                      , "TRANSFER_BIT")+  , (PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                , "BOTTOM_OF_PIPE_BIT")+  , (PIPELINE_STAGE_HOST_BIT                          , "HOST_BIT")+  , (PIPELINE_STAGE_ALL_GRAPHICS_BIT                  , "ALL_GRAPHICS_BIT")+  , (PIPELINE_STAGE_ALL_COMMANDS_BIT                  , "ALL_COMMANDS_BIT")+  , (PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV         , "COMMAND_PREPROCESS_BIT_NV")   , (PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")-  , (PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT    , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")-  , (PIPELINE_STAGE_MESH_SHADER_BIT_NV                  , "MESH_SHADER_BIT_NV")-  , (PIPELINE_STAGE_TASK_SHADER_BIT_NV                  , "TASK_SHADER_BIT_NV")-  , (PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR          , "RAY_TRACING_SHADER_BIT_KHR")+  , (PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT  , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")+  , (PIPELINE_STAGE_MESH_SHADER_BIT_NV                , "MESH_SHADER_BIT_NV")+  , (PIPELINE_STAGE_TASK_SHADER_BIT_NV                , "TASK_SHADER_BIT_NV")+  , (PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR        , "RAY_TRACING_SHADER_BIT_KHR")   , (PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, "ACCELERATION_STRUCTURE_BUILD_BIT_KHR")-  , (PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT       , "CONDITIONAL_RENDERING_BIT_EXT")-  , (PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT          , "TRANSFORM_FEEDBACK_BIT_EXT")+  , (PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT     , "CONDITIONAL_RENDERING_BIT_EXT")+  , (PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT        , "TRANSFORM_FEEDBACK_BIT_EXT")+  , (PIPELINE_STAGE_NONE                              , "NONE")   ]  instance Show PipelineStageFlagBits where
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -38,16 +38,16 @@ -- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Number    |                                                                                                                                | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTUuNzE0ODQ5IgogICBoZWlnaHQ9IjEwLjkzODc2MiIKICAgdmlld0JveD0iMCAwIDE1LjcxNDg0OSAxMC45Mzg3NjIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfcHJvdm9raW5nX3ZlcnRleC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMzguNzA4NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii01NS44NjU2MjgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1OTUiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTQ5NSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNDgxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIxOTEiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTEwNyIKICAgICAgIG9yaWdpbnk9Ii01OTUuNTA5MTciIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMy4wNDM1LDE4NC40ODI5MikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6I2ZmMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTkxLTAtMy04IgogICAgICAgY3g9IjEwNy41MzQzOSIKICAgICAgIGN5PSItMTc4LjAzNTA1IgogICAgICAgcj0iMy40OTA4OTMxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmYTAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAxNTc0NzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA3LjUzNDM5LC0xNzguMDM1IDEwLC01IgogICAgICAgaWQ9InBhdGg0NjcyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key provoking vertex>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Provoking | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used in                         |--- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Vertex    | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>.       |+-- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Vertex    | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>.       | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfZWRnZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xNTUuNzc5NSIKICAgICBpbmtzY2FwZTpjeT0iLTQuNTU4MjQ3MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjI2MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNTA3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjM4NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA5IgogICAgICAgb3JpZ2lueT0iLTY0OC41MDAwMyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzIxLjUzNDM5LDIyOS41MzUwMykiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMjIuNTM0MzksLTIyOC4wMzUwMyBoIDgwIgogICAgICAgaWQ9InBhdGgyMDMzLTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg== primitive topology key edge>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Primitive | An edge connecting the points of a main primitive.                                                                             | -- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Edge      |                                                                                                                                | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfYWRqYWNlbmN5X2VkZ2Uuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTYxLjc4OTkiCiAgICAgaW5rc2NhcGU6Y3k9Ii03MC43NzUwMjMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjIyMzMiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM0MyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMzkyIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyOTYiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTMwOSIKICAgICAgIG9yaWdpbnk9Ii02MjMuNTAwMDMiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMyMS41MzQzOSwyMDQuNTM1MDMpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTo0LCA0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzIyLjUzNDM5LC0yMDMuMDM1MDMgaCA4MCIKICAgICAgIGlkPSJwYXRoMjAzMyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPC9nPgo8L3N2Zz4K primitive topology key adjacency edge>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Adjacency | Points connected by these lines do not contribute to a main primitive, and are only accessible in a                            |--- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Edge      | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry geometry shader>.                      |+-- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Edge      | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry geometry shader>.                      | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNTUuMDYzODE2IgogICBoZWlnaHQ9IjQ2LjE3ODgyOSIKICAgdmlld0JveD0iMCAwIDU1LjA2MzgxNyA0Ni4xNzg4MyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV93aW5kaW5nX29yZGVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciPgogICAgPG1hcmtlcgogICAgICAgaW5rc2NhcGU6aXNzdG9jaz0idHJ1ZSIKICAgICAgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaWQ9Im1hcmtlcjMwMzktMSIKICAgICAgIHJlZlg9IjAiCiAgICAgICByZWZZPSIwIgogICAgICAgb3JpZW50PSJhdXRvIgogICAgICAgaW5rc2NhcGU6c3RvY2tpZD0iQXJyb3cxTWVuZCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjQsMCwwLC0wLjQsLTQsMCkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAwMDAwMDNwdDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBkPSJNIDAsMCA1LC01IC0xMi41LDAgNSw1IFoiCiAgICAgICAgIGlkPSJwYXRoMzAzNy0wIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPC9tYXJrZXI+CiAgICA8bWFya2VyCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpZD0ibWFya2VyMjg5MS02IgogICAgICAgcmVmWD0iMCIKICAgICAgIHJlZlk9IjAiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICBpbmtzY2FwZTpzdG9ja2lkPSJBcnJvdzFNZW5kIj4KICAgICAgPHBhdGgKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS4wMDAwMDAwM3B0O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIGQ9Ik0gMCwwIDUsLTUgLTEyLjUsMCA1LDUgWiIKICAgICAgICAgaWQ9InBhdGgyODg5LTYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8L21hcmtlcj4KICAgIDxtYXJrZXIKICAgICAgIGlua3NjYXBlOnN0b2NraWQ9IkFycm93MU1lbmQiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICByZWZZPSIwIgogICAgICAgcmVmWD0iMCIKICAgICAgIGlkPSJBcnJvdzFNZW5kLTgwIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHBhdGgKICAgICAgICAgaWQ9InBhdGg4OTAtMCIKICAgICAgICAgZD0iTSAwLDAgNSwtNSAtMTIuNSwwIDUsNSBaIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjAwMDAwMDAzcHQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvbWFya2VyPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTQwLjU1MDU2IgogICAgIGlua3NjYXBlOmN5PSItOC40MzI2NjQ2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA3LjAyOTMzIgogICAgICAgb3JpZ2lueT0iLTU2Ni40NjA5NyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzE5LjU2MzcxLDE5MC42NzQ4KSI+CiAgICA8ZwogICAgICAgaWQ9Imc0Mzg5LTg5IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU1LC00NC45OTk5OTUpIj4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODY4LTc5IgogICAgICAgICBkPSJtIDY3LjUzNDM5MywtMTEzLjAzNTEgMjAsLTMwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjbWFya2VyMzAzOS0xKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODcwLTMiCiAgICAgICAgIGQ9Im0gOTcuNTM0MzkzLC0xNDMuMDM1MSAxOS45OTk5OTcsMzAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO21hcmtlci1lbmQ6dXJsKCNtYXJrZXIyODkxLTYpIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDE4NzItOSIKICAgICAgICAgZD0iTSAxMTcuNTM0MzksLTEwMy4wMzUxIEggNjcuNTM0MzkzIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjQXJyb3cxTWVuZC04MCkiIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K primitive topology key winding order>> | Winding   | The relative order in which vertices are defined within a primitive, used in the                                               |--- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Order     | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-polygons-basic facing determination>. |+-- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Order     | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygons-basic facing determination>. | -- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |           | This ordering has no specific start or end point.                                                                              | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ --@@ -60,29 +60,30 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' newtype PrimitiveTopology = PrimitiveTopology Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'PRIMITIVE_TOPOLOGY_POINT_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-point-lists separate point primitives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-point-lists separate point primitives>. pattern PRIMITIVE_TOPOLOGY_POINT_LIST                    = PrimitiveTopology 0 -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-line-lists separate line primitives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists separate line primitives>. pattern PRIMITIVE_TOPOLOGY_LINE_LIST                     = PrimitiveTopology 1 -- | 'PRIMITIVE_TOPOLOGY_LINE_STRIP' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-line-strips connected line primitives>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips connected line primitives> -- with consecutive lines sharing a vertex. pattern PRIMITIVE_TOPOLOGY_LINE_STRIP                    = PrimitiveTopology 2 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-lists separate triangle primitives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists separate triangle primitives>. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                 = PrimitiveTopology 3 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-strips connected triangle primitives>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips connected triangle primitives> -- with consecutive triangles sharing an edge. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                = PrimitiveTopology 4 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_FAN' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives> -- with all triangles sharing a common vertex. If the -- @VK_KHR_portability_subset@ extension is enabled, and -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@@@ -91,21 +92,21 @@ -- /must/ not be used. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                  = PrimitiveTopology 5 -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-line-lists-with-adjacency separate line primitives with adjacency>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists-with-adjacency separate line primitives with adjacency>. pattern PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY      = PrimitiveTopology 6 -- | 'PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-line-strips-with-adjacency connected line primitives with adjacency>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips-with-adjacency connected line primitives with adjacency>, -- with consecutive primitives sharing three vertices. pattern PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY     = PrimitiveTopology 7 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency separate triangle primitives with adjacency>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency separate triangle primitives with adjacency>. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY  = PrimitiveTopology 8 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY' specifies--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency connected triangle primitives with adjacency>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency connected triangle primitives with adjacency>, -- with consecutive triangles sharing an edge. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = PrimitiveTopology 9 -- | 'PRIMITIVE_TOPOLOGY_PATCH_LIST' specifies--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-patch-lists separate patch primitives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-patch-lists separate patch primitives>. pattern PRIMITIVE_TOPOLOGY_PATCH_LIST                    = PrimitiveTopology 10 {-# complete PRIMITIVE_TOPOLOGY_POINT_LIST,              PRIMITIVE_TOPOLOGY_LINE_LIST,
src/Vulkan/Core10/Enums/QueryControlFlagBits.hs view
@@ -29,7 +29,7 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'QUERY_CONTROL_PRECISE_BIT' specifies the precision of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-occlusion occlusion queries>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion queries>. pattern QUERY_CONTROL_PRECISE_BIT = QueryControlFlagBits 0x00000001  conNameQueryControlFlagBits :: String
src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs view
@@ -38,7 +38,7 @@ -- implementation. Various device architectures will count these values -- differently. Any or all counters /may/ be affected by the issues -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-undefined Query Operation>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-undefined Query Operation>. -- -- Note --@@ -47,7 +47,7 @@ -- -- If a pipeline has @rasterizerDiscardEnable@ enabled, implementations -- /may/ discard primitives after the final--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- As a result, if @rasterizerDiscardEnable@ is enabled, the clipping input -- and output primitives counters /may/ not be incremented. --@@ -67,14 +67,14 @@ -- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT' specifies that -- queries managed by the pool will count the number of vertices processed -- by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing input assembly>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing input assembly> -- stage. Vertices corresponding to incomplete primitives /may/ contribute -- to the count. pattern QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT             = QueryPipelineStatisticFlagBits 0x00000001 -- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT' specifies that -- queries managed by the pool will count the number of primitives -- processed by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing input assembly>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing input assembly> -- stage. If primitive restart is enabled, restarting the primitive -- topology has no effect on the count. Incomplete primitives /may/ be -- counted.@@ -83,15 +83,15 @@ -- queries managed by the pool will count the number of vertex shader -- invocations. This counter’s value is incremented each time a vertex -- shader is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-vertex-execution invoked>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex-execution invoked>. pattern QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT           = QueryPipelineStatisticFlagBits 0x00000004 -- | 'QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT' specifies -- that queries managed by the pool will count the number of geometry -- shader invocations. This counter’s value is incremented each time a -- geometry shader is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution invoked>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution invoked>. -- In the case of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-invocations instanced geometry shaders>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-invocations instanced geometry shaders>, -- the geometry shader invocations count is incremented for each separate -- instanced invocation. pattern QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT         = QueryPipelineStatisticFlagBits 0x00000008@@ -106,14 +106,14 @@ -- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT' specifies that -- queries managed by the pool will count the number of primitives -- processed by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping> -- stage of the pipeline. The counter’s value is incremented each time a -- primitive reaches the primitive clipping stage. pattern QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                = QueryPipelineStatisticFlagBits 0x00000020 -- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT' specifies that -- queries managed by the pool will count the number of primitives output -- by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping> -- stage of the pipeline. The counter’s value is incremented each time a -- primitive passes the primitive clipping stage. The actual number of -- primitives output by the primitive clipping stage for a particular input@@ -129,20 +129,20 @@ -- that queries managed by the pool will count the number of fragment -- shader invocations. The counter’s value is incremented each time the -- fragment shader is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-shader invoked>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader invoked>. pattern QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT         = QueryPipelineStatisticFlagBits 0x00000080 -- | 'QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT' -- specifies that queries managed by the pool will count the number of -- patches processed by the tessellation control shader. The counter’s -- value is incremented once for each patch for which a tessellation -- control shader is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-tessellation-control-execution invoked>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-control-execution invoked>. pattern QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = QueryPipelineStatisticFlagBits 0x00000100 -- | 'QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT' -- specifies that queries managed by the pool will count the number of -- invocations of the tessellation evaluation shader. The counter’s value -- is incremented each time the tessellation evaluation shader is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>. pattern QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT =   QueryPipelineStatisticFlagBits 0x00000200 -- | 'QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT' specifies that
src/Vulkan/Core10/Enums/QueryType.hs view
@@ -34,37 +34,37 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'QUERY_TYPE_OCCLUSION' specifies an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-occlusion occlusion query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion query>. pattern QUERY_TYPE_OCCLUSION                     = QueryType 0 -- | 'QUERY_TYPE_PIPELINE_STATISTICS' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats pipeline statistics query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats pipeline statistics query>. pattern QUERY_TYPE_PIPELINE_STATISTICS           = QueryType 1 -- | 'QUERY_TYPE_TIMESTAMP' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-timestamps timestamp query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps timestamp query>. pattern QUERY_TYPE_TIMESTAMP                     = QueryType 2 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_INTEL' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance-intel Intel performance query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance-intel Intel performance query>. pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL       = QueryType 1000210000 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query> -- for use with -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = QueryType 1000165000 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query> pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = QueryType 1000150001 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query> -- for use with -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR' -- or -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = QueryType 1000150000 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance performance query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance performance query>. pattern QUERY_TYPE_PERFORMANCE_QUERY_KHR         = QueryType 1000116000 -- | 'QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback transform feedback query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-transform-feedback transform feedback query>. pattern QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = QueryType 1000028004 {-# complete QUERY_TYPE_OCCLUSION,              QUERY_TYPE_PIPELINE_STATISTICS,
src/Vulkan/Core10/Enums/QueueFlagBits.hs view
@@ -48,7 +48,7 @@ -- /optional/. -- -- For further details see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-queues Queues>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queues Queues>. -- -- = See Also --@@ -68,7 +68,7 @@ pattern QUEUE_TRANSFER_BIT       = QueueFlagBits 0x00000004 -- | 'QUEUE_SPARSE_BINDING_BIT' specifies that queues in this queue family -- support sparse memory management operations (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory Sparse Resources>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory Sparse Resources>). -- If any of the sparse resource features are enabled, then at least one -- queue family /must/ support this bit. pattern QUEUE_SPARSE_BINDING_BIT = QueueFlagBits 0x00000008@@ -76,7 +76,7 @@ -- the -- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT' -- bit. (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-memory Protected Memory>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-memory Protected Memory>). -- If the physical device supports the @protectedMemory@ feature, at least -- one of its queue families /must/ support this bit. pattern QUEUE_PROTECTED_BIT      = QueueFlagBits 0x00000010
src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs view
@@ -31,7 +31,7 @@  -- | 'RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM' specifies that the created -- render pass is compatible with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. pattern RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = RenderPassCreateFlagBits 0x00000002  conNameRenderPassCreateFlagBits :: String
src/Vulkan/Core10/Enums/Result.hs view
@@ -19,13 +19,12 @@                                           , ERROR_FORMAT_NOT_SUPPORTED                                           , ERROR_FRAGMENTED_POOL                                           , ERROR_UNKNOWN-                                          , PIPELINE_COMPILE_REQUIRED_EXT                                           , OPERATION_NOT_DEFERRED_KHR                                           , OPERATION_DEFERRED_KHR                                           , THREAD_DONE_KHR                                           , THREAD_IDLE_KHR                                           , ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT-                                          , ERROR_NOT_PERMITTED_EXT+                                          , ERROR_NOT_PERMITTED_KHR                                           , ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT                                           , ERROR_INVALID_SHADER_NV                                           , ERROR_VALIDATION_FAILED_EXT@@ -34,6 +33,7 @@                                           , SUBOPTIMAL_KHR                                           , ERROR_NATIVE_WINDOW_IN_USE_KHR                                           , ERROR_SURFACE_LOST_KHR+                                          , PIPELINE_COMPILE_REQUIRED                                           , ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS                                           , ERROR_FRAGMENTATION                                           , ERROR_INVALID_EXTERNAL_HANDLE@@ -119,7 +119,7 @@ -- completed for implementation-specific reasons. pattern ERROR_INITIALIZATION_FAILED          = Result (-3) -- | 'ERROR_DEVICE_LOST' The logical or physical device has been lost. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device> pattern ERROR_DEVICE_LOST                    = Result (-4) -- | 'ERROR_MEMORY_MAP_FAILED' Mapping of a memory object has failed. pattern ERROR_MEMORY_MAP_FAILED              = Result (-5)@@ -150,10 +150,6 @@ -- | 'ERROR_UNKNOWN' An unknown error has occurred; either the application -- has provided invalid input, or an implementation failure has occurred. pattern ERROR_UNKNOWN                        = Result (-13)--- | 'PIPELINE_COMPILE_REQUIRED_EXT' A requested pipeline creation would have--- required compilation, but the application requested compilation to not--- be performed.-pattern PIPELINE_COMPILE_REQUIRED_EXT        = Result 1000297000 -- | 'OPERATION_NOT_DEFERRED_KHR' A deferred operation was requested and no -- operations were deferred. pattern OPERATION_NOT_DEFERRED_KHR           = Result 1000268003@@ -173,8 +169,8 @@ -- due to implementation-dependent reasons, outside of the application’s -- control. pattern ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = Result (-1000255000)--- No documentation found for Nested "VkResult" "VK_ERROR_NOT_PERMITTED_EXT"-pattern ERROR_NOT_PERMITTED_EXT              = Result (-1000174001)+-- No documentation found for Nested "VkResult" "VK_ERROR_NOT_PERMITTED_KHR"+pattern ERROR_NOT_PERMITTED_KHR              = Result (-1000174001) -- No documentation found for Nested "VkResult" "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT" pattern ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = Result (-1000158000) -- | 'ERROR_INVALID_SHADER_NV' One or more shaders failed to compile or link.@@ -202,6 +198,10 @@ pattern ERROR_NATIVE_WINDOW_IN_USE_KHR       = Result (-1000000001) -- | 'ERROR_SURFACE_LOST_KHR' A surface is no longer available. pattern ERROR_SURFACE_LOST_KHR               = Result (-1000000000)+-- | 'PIPELINE_COMPILE_REQUIRED' A requested pipeline creation would have+-- required compilation, but the application requested compilation to not+-- be performed.+pattern PIPELINE_COMPILE_REQUIRED            = Result 1000297000 -- | 'ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS' A buffer creation or memory -- allocation failed because the requested address is not available. A -- shader group handle assignment failed because the requested shader group@@ -238,13 +238,12 @@              ERROR_FORMAT_NOT_SUPPORTED,              ERROR_FRAGMENTED_POOL,              ERROR_UNKNOWN,-             PIPELINE_COMPILE_REQUIRED_EXT,              OPERATION_NOT_DEFERRED_KHR,              OPERATION_DEFERRED_KHR,              THREAD_DONE_KHR,              THREAD_IDLE_KHR,              ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,-             ERROR_NOT_PERMITTED_EXT,+             ERROR_NOT_PERMITTED_KHR,              ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,              ERROR_INVALID_SHADER_NV,              ERROR_VALIDATION_FAILED_EXT,@@ -253,6 +252,7 @@              SUBOPTIMAL_KHR,              ERROR_NATIVE_WINDOW_IN_USE_KHR,              ERROR_SURFACE_LOST_KHR,+             PIPELINE_COMPILE_REQUIRED,              ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,              ERROR_FRAGMENTATION,              ERROR_INVALID_EXTERNAL_HANDLE,@@ -285,13 +285,12 @@   , (ERROR_FORMAT_NOT_SUPPORTED          , "ERROR_FORMAT_NOT_SUPPORTED")   , (ERROR_FRAGMENTED_POOL               , "ERROR_FRAGMENTED_POOL")   , (ERROR_UNKNOWN                       , "ERROR_UNKNOWN")-  , (PIPELINE_COMPILE_REQUIRED_EXT       , "PIPELINE_COMPILE_REQUIRED_EXT")   , (OPERATION_NOT_DEFERRED_KHR          , "OPERATION_NOT_DEFERRED_KHR")   , (OPERATION_DEFERRED_KHR              , "OPERATION_DEFERRED_KHR")   , (THREAD_DONE_KHR                     , "THREAD_DONE_KHR")   , (THREAD_IDLE_KHR                     , "THREAD_IDLE_KHR")   , (ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT, "ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT")-  , (ERROR_NOT_PERMITTED_EXT             , "ERROR_NOT_PERMITTED_EXT")+  , (ERROR_NOT_PERMITTED_KHR             , "ERROR_NOT_PERMITTED_KHR")   , (ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT, "ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT")   , (ERROR_INVALID_SHADER_NV             , "ERROR_INVALID_SHADER_NV")   , (ERROR_VALIDATION_FAILED_EXT         , "ERROR_VALIDATION_FAILED_EXT")@@ -300,6 +299,7 @@   , (SUBOPTIMAL_KHR                      , "SUBOPTIMAL_KHR")   , (ERROR_NATIVE_WINDOW_IN_USE_KHR      , "ERROR_NATIVE_WINDOW_IN_USE_KHR")   , (ERROR_SURFACE_LOST_KHR              , "ERROR_SURFACE_LOST_KHR")+  , (PIPELINE_COMPILE_REQUIRED           , "PIPELINE_COMPILE_REQUIRED")   , (ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, "ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS")   , (ERROR_FRAGMENTATION                 , "ERROR_FRAGMENTATION")   , (ERROR_INVALID_EXTERNAL_HANDLE       , "ERROR_INVALID_EXTERNAL_HANDLE")
src/Vulkan/Core10/Enums/SampleCountFlagBits.hs view
@@ -34,7 +34,7 @@ -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
src/Vulkan/Core10/Enums/SamplerAddressMode.hs view
@@ -41,7 +41,7 @@ pattern SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER      = SamplerAddressMode 3 -- | 'SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE' specifies that the mirror -- clamp to edge wrap mode will be used. This is only valid if--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge> -- is enabled, or if the @VK_KHR_sampler_mirror_clamp_to_edge@ extension is -- enabled. pattern SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = SamplerAddressMode 4
src/Vulkan/Core10/Enums/SamplerMipmapMode.hs view
@@ -19,7 +19,7 @@ -- = Description -- -- These modes are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>. -- -- = See Also --
src/Vulkan/Core10/Enums/SharingMode.hs view
@@ -30,14 +30,14 @@ -- acquired upon first use within a queue. Once a resource using -- 'SHARING_MODE_EXCLUSIVE' is owned by some queue family, the application -- /must/ perform a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer> -- to make the memory contents of a range or image subresource accessible -- to a different queue family. -- -- Note -- -- Images still require a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-layouts layout transition>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts layout transition> -- from 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED' before -- being used on the first queue.
src/Vulkan/Core10/Enums/StencilOp.hs view
@@ -31,6 +31,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.StencilOpState',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' newtype StencilOp = StencilOp Int32   deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -53,10 +53,6 @@                                                         , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM-                                                        , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR-                                                        , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT                                                         , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT@@ -64,8 +60,6 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT                                                         , STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT                                                         , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX@@ -91,7 +85,6 @@                                                         , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT@@ -105,19 +98,7 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR-                                                        , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR-                                                        , STRUCTURE_TYPE_IMAGE_BLIT_2_KHR-                                                        , STRUCTURE_TYPE_IMAGE_COPY_2_KHR-                                                        , STRUCTURE_TYPE_BUFFER_COPY_2_KHR-                                                        , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR-                                                        , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR-                                                        , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR-                                                        , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR-                                                        , STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR-                                                        , STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT                                                         , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT@@ -128,24 +109,11 @@                                                         , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR                                                         , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR-                                                        , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR-                                                        , STRUCTURE_TYPE_SUBMIT_INFO_2_KHR-                                                        , STRUCTURE_TYPE_DEPENDENCY_INFO_KHR-                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR-                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR-                                                        , STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR                                                         , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR                                                         , STRUCTURE_TYPE_PRESENT_ID_KHR                                                         , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR@@ -159,10 +127,7 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT                                                         , STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV@@ -173,7 +138,6 @@                                                         , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR@@ -204,7 +168,6 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR                                                         , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV@@ -220,14 +183,10 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR                                                         , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR                                                         , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT                                                         , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR                                                         , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD                                                         , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD@@ -248,12 +207,14 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV-                                                        , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD+                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR+                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD                                                         , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT                                                         , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD@@ -261,7 +222,6 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT-                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT                                                         , STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV@@ -324,10 +284,6 @@                                                         , STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT                                                         , STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT-                                                        , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT                                                         , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID                                                         , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                                                         , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID@@ -400,7 +356,6 @@                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT                                                         , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT                                                         , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                                         , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                                         , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR@@ -420,11 +375,6 @@                                                         , STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD                                                         , STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT                                                         , STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR-                                                        , STRUCTURE_TYPE_RENDERING_INFO_KHR                                                         , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                                                         , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX                                                         , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX@@ -452,6 +402,58 @@                                                         , STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                                         , STRUCTURE_TYPE_PRESENT_INFO_KHR                                                         , STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS+                                                        , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES+                                                        , STRUCTURE_TYPE_FORMAT_PROPERTIES_3+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES+                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES+                                                        , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO+                                                        , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO+                                                        , STRUCTURE_TYPE_RENDERING_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES+                                                        , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO+                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES+                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES+                                                        , STRUCTURE_TYPE_IMAGE_RESOLVE_2+                                                        , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2+                                                        , STRUCTURE_TYPE_IMAGE_BLIT_2+                                                        , STRUCTURE_TYPE_IMAGE_COPY_2+                                                        , STRUCTURE_TYPE_BUFFER_COPY_2+                                                        , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2+                                                        , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2+                                                        , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2+                                                        , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2+                                                        , STRUCTURE_TYPE_COPY_IMAGE_INFO_2+                                                        , STRUCTURE_TYPE_COPY_BUFFER_INFO_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES+                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO+                                                        , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO+                                                        , STRUCTURE_TYPE_SUBMIT_INFO_2+                                                        , STRUCTURE_TYPE_DEPENDENCY_INFO+                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2+                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2+                                                        , STRUCTURE_TYPE_MEMORY_BARRIER_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES+                                                        , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO+                                                        , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES+                                                        , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES                                                         , STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO                                                         , STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO                                                         , STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO@@ -621,20 +623,20 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionConstraintsInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferConstraintsInfoFUCHSIA',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',@@ -646,21 +648,21 @@ -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',--- 'Vulkan.Extensions.VK_KHR_synchronization2.CommandBufferSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo', -- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo', -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.CooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureToMemoryInfoKHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2', -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM', -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyMemoryToAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX', -- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',@@ -678,9 +680,9 @@ -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',--- 'Vulkan.Extensions.VK_KHR_synchronization2.DependencyInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',@@ -688,7 +690,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountLayoutSupport', -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceBufferMemoryRequirements', -- 'Vulkan.Core10.Device.DeviceCreateInfo', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceDeviceMemoryReportCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV',@@ -701,13 +703,13 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupSwapchainCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.DeviceMemoryOpaqueCaptureAddressInfo', -- 'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.DevicePrivateDataCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo', -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo',--- 'Vulkan.Extensions.VK_EXT_global_priority.DeviceQueueGlobalPriorityCreateInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.DeviceQueueInfo2', -- 'Vulkan.Extensions.VK_EXT_directfb_surface.DirectFBSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.DisplayEventInfoEXT',@@ -745,7 +747,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2',--- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.FormatProperties3', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo',@@ -762,9 +764,9 @@ -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT', -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT',@@ -773,11 +775,11 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2', -- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.ImagePipeSurfaceCreateInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',@@ -808,7 +810,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', -- 'Vulkan.Core10.Memory.MemoryAllocateInfo', -- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryFdPropertiesKHR',@@ -869,7 +871,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',@@ -894,27 +896,27 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',--- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceMemoryProperties2',@@ -930,7 +932,7 @@ -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',@@ -938,7 +940,7 @@ -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',@@ -966,35 +968,35 @@ -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',--- 'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductPropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures', -- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_synchronization2.PhysicalDeviceSynchronization2FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',--- 'Vulkan.Extensions.VK_EXT_tooling_info.PhysicalDeviceToolPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.PhysicalDeviceToolProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',@@ -1007,11 +1009,13 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Features',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures', -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',@@ -1020,7 +1024,7 @@ -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo',@@ -1042,11 +1046,11 @@ -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo', -- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT',@@ -1063,14 +1067,14 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',--- 'Vulkan.Extensions.VK_EXT_private_data.PrivateDataSlotCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PrivateDataSlotCreateInfo', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo', -- 'Vulkan.Core10.Query.QueryPoolCreateInfo', -- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL', -- 'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>, -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',@@ -1087,11 +1091,11 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',+-- '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.Core10.Sampler.SamplerCreateInfo',@@ -1106,7 +1110,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo', -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',@@ -1116,7 +1120,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2', -- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateInfoGGP', -- 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassBeginInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',@@ -1207,7 +1211,7 @@ -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock', -- 'Vulkan.Extensions.VK_KHR_xcb_surface.XcbSurfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_xlib_surface.XlibSurfaceCreateInfoKHR' newtype StructureType = StructureType Int32@@ -1319,14 +1323,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = StructureType 1000425001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = StructureType 1000425000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR"-pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR      = StructureType 1000413003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR"-pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR     = StructureType 1000413002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = StructureType 1000413001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = StructureType 1000413000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = StructureType 1000412000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"@@ -1341,10 +1337,6 @@ pattern STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT        = StructureType 1000391001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = StructureType 1000391000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = StructureType 1000388001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = StructureType 1000388000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT      = StructureType 1000381001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"@@ -1395,8 +1387,6 @@ pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA   = StructureType 1000364001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000364000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR"-pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR                   = StructureType 1000360000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = StructureType 1000356000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"@@ -1423,32 +1413,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = StructureType 1000342000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = StructureType 1000340000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR                       = StructureType 1000337010--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"-pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR                   = StructureType 1000337009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR                          = StructureType 1000337008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR                          = StructureType 1000337007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR"-pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR                         = StructureType 1000337006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR                  = StructureType 1000337005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR                     = StructureType 1000337004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR           = StructureType 1000337003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR           = StructureType 1000337002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                     = StructureType 1000337001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                    = StructureType 1000337000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = StructureType 1000336000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM" pattern STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM          = StructureType 1000333000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"@@ -1469,42 +1435,16 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = StructureType 1000326001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = StructureType 1000325000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = StructureType 1000323000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV" pattern STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                      = StructureType 1000314009 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV" pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV   = StructureType 1000314008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = StructureType 1000314007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR            = StructureType 1000314006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR"-pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR                 = StructureType 1000314005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"-pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR                         = StructureType 1000314004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR"-pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR                       = StructureType 1000314003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR                = StructureType 1000314002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR"-pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR               = StructureType 1000314001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"-pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR                      = StructureType 1000314000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV  = StructureType 1000300001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = StructureType 1000300000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = StructureType 1000297000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT         = StructureType 1000295002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT       = StructureType 1000295001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = StructureType 1000295000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR   = StructureType 1000294001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"@@ -1531,14 +1471,8 @@ pattern STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM     = StructureType 1000282001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM" pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = StructureType 1000282000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = StructureType 1000281001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = StructureType 1000280001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = StructureType 1000280000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV" pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = StructureType 1000278001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"@@ -1559,8 +1493,6 @@ pattern STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV      = StructureType 1000277001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = StructureType 1000276000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"@@ -1621,8 +1553,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                   = StructureType 1000247000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT       = StructureType 1000245000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT     = StructureType 1000244002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"@@ -1653,12 +1583,6 @@ pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = StructureType 1000226001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" pattern STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000226000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = StructureType 1000225002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = StructureType 1000225001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = StructureType 1000225000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = StructureType 1000218002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"@@ -1667,8 +1591,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = StructureType 1000218000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT             = StructureType 1000217000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = StructureType 1000215000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA     = StructureType 1000214000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"@@ -1709,8 +1631,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV   = StructureType 1000202000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = StructureType 1000201000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000192000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP" pattern STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP                   = StructureType 1000191000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"@@ -1721,6 +1641,12 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = StructureType 1000190000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD" pattern STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = StructureType 1000189000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = StructureType 1000388001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = StructureType 1000388000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = StructureType 1000174000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = StructureType 1000185000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"@@ -1735,8 +1661,6 @@ pattern STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT        = StructureType 1000178001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT" pattern STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT       = StructureType 1000178000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = StructureType 1000174000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT" pattern STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = StructureType 1000170001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"@@ -1861,14 +1785,6 @@ pattern STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = StructureType 1000143001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" pattern STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                 = StructureType 1000143000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = StructureType 1000138003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = StructureType 1000138002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = StructureType 1000138001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = StructureType 1000138000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID" pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = StructureType 1000129006 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"@@ -2013,8 +1929,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT  = StructureType 1000067001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT" pattern STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT           = StructureType 1000067000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = StructureType 1000066000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN" pattern STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                 = StructureType 1000062000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"@@ -2053,16 +1967,6 @@ pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = StructureType 1000044007 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000044006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = StructureType 1000044004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = StructureType 1000044003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR        = StructureType 1000044002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR"-pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR             = StructureType 1000044001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"-pattern STRUCTURE_TYPE_RENDERING_INFO_KHR                        = StructureType 1000044000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD" pattern STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD  = StructureType 1000041000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"@@ -2117,6 +2021,110 @@ pattern STRUCTURE_TYPE_PRESENT_INFO_KHR                          = StructureType 1000001001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR" pattern STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                 = StructureType 1000001000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"+pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS          = StructureType 1000413003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"+pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS         = StructureType 1000413002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES  = StructureType 1000413001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES    = StructureType 1000413000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3                       = StructureType 1000360000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = StructureType 1000281001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = StructureType 1000280001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = StructureType 1000280000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = StructureType 1000044004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = StructureType 1000044003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO            = StructureType 1000044002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"+pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO                 = StructureType 1000044001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INFO"+pattern STRUCTURE_TYPE_RENDERING_INFO                            = StructureType 1000044000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = StructureType 1000066000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = StructureType 1000138003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = StructureType 1000138002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = StructureType 1000138001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = StructureType 1000138000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = StructureType 1000225002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = StructureType 1000225001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = StructureType 1000225000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"+pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2                           = StructureType 1000337010+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"+pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2                       = StructureType 1000337009+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2"+pattern STRUCTURE_TYPE_IMAGE_BLIT_2                              = StructureType 1000337008+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2"+pattern STRUCTURE_TYPE_IMAGE_COPY_2                              = StructureType 1000337007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2"+pattern STRUCTURE_TYPE_BUFFER_COPY_2                             = StructureType 1000337006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2                      = StructureType 1000337005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2                         = StructureType 1000337004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2               = StructureType 1000337003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2               = StructureType 1000337002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2                         = StructureType 1000337001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"+pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2                        = StructureType 1000337000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = StructureType 1000335000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = StructureType 1000325000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = StructureType 1000314007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO                = StructureType 1000314006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"+pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO                     = StructureType 1000314005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO_2"+pattern STRUCTURE_TYPE_SUBMIT_INFO_2                             = StructureType 1000314004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPENDENCY_INFO"+pattern STRUCTURE_TYPE_DEPENDENCY_INFO                           = StructureType 1000314003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2                    = StructureType 1000314002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2                   = StructureType 1000314001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"+pattern STRUCTURE_TYPE_MEMORY_BARRIER_2                          = StructureType 1000314000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = StructureType 1000297000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"+pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO             = StructureType 1000295002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"+pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO           = StructureType 1000295001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES     = StructureType 1000295000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = StructureType 1000276000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES           = StructureType 1000245000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = StructureType 1000215000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO    = StructureType 1000192000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES     = StructureType 54+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES       = StructureType 53 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO" pattern STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = StructureType 1000257004 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"@@ -2400,10 +2408,6 @@              STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,-             STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,-             STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,              STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,@@ -2411,8 +2415,6 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,              STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,-             STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,              STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,@@ -2438,7 +2440,6 @@              STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,              STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,-             STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,@@ -2452,19 +2453,7 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,-             STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,-             STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,-             STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,-             STRUCTURE_TYPE_IMAGE_COPY_2_KHR,-             STRUCTURE_TYPE_BUFFER_COPY_2_KHR,-             STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,-             STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,-             STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,-             STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,-             STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,-             STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,              STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,@@ -2475,24 +2464,11 @@              STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,              STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,              STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,-             STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,-             STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,-             STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,-             STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,-             STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,-             STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,-             STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,              STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,-             STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,-             STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,              STRUCTURE_TYPE_PRESENT_ID_KHR,              STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,@@ -2506,10 +2482,7 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,              STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,              STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,              STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,@@ -2520,7 +2493,6 @@              STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,              STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,              STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,@@ -2551,7 +2523,6 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,              STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,              STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,@@ -2567,14 +2538,10 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,              STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,              STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,-             STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,              STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,              STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,              STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,              STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,              STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,@@ -2595,12 +2562,14 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,-             STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,              STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,              STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,              STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,+             STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,+             STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,              STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,              STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,@@ -2608,7 +2577,6 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,              STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,              STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,-             STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,              STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,              STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,@@ -2671,10 +2639,6 @@              STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,              STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,              STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,-             STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,-             STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,              STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,              STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,              STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,@@ -2747,7 +2711,6 @@              STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,              STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,              STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,              STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,              STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,@@ -2767,11 +2730,6 @@              STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,              STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,              STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,-             STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,-             STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,-             STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,-             STRUCTURE_TYPE_RENDERING_INFO_KHR,              STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,              STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,              STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,@@ -2799,6 +2757,58 @@              STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,              STRUCTURE_TYPE_PRESENT_INFO_KHR,              STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,+             STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,+             STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,+             STRUCTURE_TYPE_FORMAT_PROPERTIES_3,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,+             STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,+             STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,+             STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,+             STRUCTURE_TYPE_RENDERING_INFO,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,+             STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,+             STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,+             STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,+             STRUCTURE_TYPE_IMAGE_RESOLVE_2,+             STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,+             STRUCTURE_TYPE_IMAGE_BLIT_2,+             STRUCTURE_TYPE_IMAGE_COPY_2,+             STRUCTURE_TYPE_BUFFER_COPY_2,+             STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,+             STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,+             STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,+             STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,+             STRUCTURE_TYPE_COPY_IMAGE_INFO_2,+             STRUCTURE_TYPE_COPY_BUFFER_INFO_2,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,+             STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,+             STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,+             STRUCTURE_TYPE_SUBMIT_INFO_2,+             STRUCTURE_TYPE_DEPENDENCY_INFO,+             STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,+             STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,+             STRUCTURE_TYPE_MEMORY_BARRIER_2,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,+             STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,+             STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,+             STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES,              STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,              STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,              STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,@@ -2984,10 +2994,6 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM     , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"     )-  , (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR        , "DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR")-  , (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR       , "DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR, "PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR  , "PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT     , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"     )@@ -3001,10 +3007,6 @@   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT        , "PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT")   , (STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT             , "IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT")-  , (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT    , "QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT-    , "PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"-    )   , (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT           , "PIPELINE_COLOR_WRITE_CREATE_INFO_EXT")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, "PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT")   , (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX                 , "SCREEN_SURFACE_CREATE_INFO_QNX")@@ -3036,7 +3038,6 @@   , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA          , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")   , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA        , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")   , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA       , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR                        , "FORMAT_PROPERTIES_3_KHR")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT     , "PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"     )@@ -3060,22 +3061,10 @@     , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"     )   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")-  , (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR                      , "IMAGE_RESOLVE_2_KHR")-  , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR                  , "BUFFER_IMAGE_COPY_2_KHR")-  , (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR                         , "IMAGE_BLIT_2_KHR")-  , (STRUCTURE_TYPE_IMAGE_COPY_2_KHR                         , "IMAGE_COPY_2_KHR")-  , (STRUCTURE_TYPE_BUFFER_COPY_2_KHR                        , "BUFFER_COPY_2_KHR")-  , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR                 , "RESOLVE_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR                    , "BLIT_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR          , "COPY_IMAGE_TO_BUFFER_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR          , "COPY_BUFFER_TO_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                    , "COPY_IMAGE_INFO_2_KHR")-  , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                   , "COPY_BUFFER_INFO_2_KHR")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR     , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"     )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT")-  , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM             , "COPY_COMMAND_TRANSFORM_INFO_QCOM")+  , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM, "COPY_COMMAND_TRANSFORM_INFO_QCOM")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT     , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"     )@@ -3101,33 +3090,16 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV     , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"     )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR-    , "PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"-    )   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR     , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"     )-  , (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                          , "CHECKPOINT_DATA_2_NV")-  , (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV       , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR, "PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR")-  , (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR                , "COMMAND_BUFFER_SUBMIT_INFO_KHR")-  , (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR                     , "SEMAPHORE_SUBMIT_INFO_KHR")-  , (STRUCTURE_TYPE_SUBMIT_INFO_2_KHR                             , "SUBMIT_INFO_2_KHR")-  , (STRUCTURE_TYPE_DEPENDENCY_INFO_KHR                           , "DEPENDENCY_INFO_KHR")-  , (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR                    , "IMAGE_MEMORY_BARRIER_2_KHR")-  , (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR                   , "BUFFER_MEMORY_BARRIER_2_KHR")-  , (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR                          , "MEMORY_BARRIER_2_KHR")-  , (STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV      , "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")+  , (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                    , "CHECKPOINT_DATA_2_NV")+  , (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")+  , (STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, "PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT-    , "PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT        , "PRIVATE_DATA_SLOT_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT      , "DEVICE_PRIVATE_DATA_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, "PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR  , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")-  , (STRUCTURE_TYPE_PRESENT_ID_KHR                           , "PRESENT_ID_KHR")-  , (STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR         , "PIPELINE_LIBRARY_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")+  , (STRUCTURE_TYPE_PRESENT_ID_KHR                          , "PRESENT_ID_KHR")+  , (STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR        , "PIPELINE_LIBRARY_CREATE_INFO_KHR")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT     , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"     )@@ -3146,18 +3118,9 @@   , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM     , "COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"     )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"-    )   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT     , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"     )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR-    , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"-    )   , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV     , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"     )@@ -3176,9 +3139,6 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV     , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"     )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT-    , "PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"-    )   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT     , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"     )@@ -3231,7 +3191,6 @@   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR     , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR")   , (STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                       , "VALIDATION_FEATURES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT           , "PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT")   , (STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT         , "BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT     , "PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"@@ -3259,15 +3218,6 @@     , "PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"     )   , (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT-    , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT-    , "PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"-    )   , ( STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT     , "RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"     )@@ -3277,10 +3227,7 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT     , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"     )-  , (STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT, "METAL_SURFACE_CREATE_INFO_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR-    , "PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"-    )+  , (STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT                 , "METAL_SURFACE_CREATE_INFO_EXT")   , (STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA         , "IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA")   , (STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD  , "SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD")   , (STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD   , "DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD")@@ -3311,8 +3258,7 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV     , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"     )-  , (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT, "PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP                   , "PRESENT_FRAME_TOKEN_GGP")+  , (STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP, "PRESENT_FRAME_TOKEN_GGP")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT     , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"     )@@ -3323,6 +3269,11 @@     , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"     )   , (STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, "DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD")+  , (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR , "QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR+    , "PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"+    )+  , (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR, "DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD  , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD")   , (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT               , "CALIBRATED_TIMESTAMP_INFO_EXT")   , (STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD   , "PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD")@@ -3330,9 +3281,8 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT     , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"     )-  , (STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT          , "MEMORY_HOST_POINTER_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT         , "IMPORT_MEMORY_HOST_POINTER_INFO_EXT")-  , (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, "DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT")+  , (STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT , "MEMORY_HOST_POINTER_PROPERTIES_EXT")+  , (STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT, "IMPORT_MEMORY_HOST_POINTER_INFO_EXT")   , ( STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT     , "FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"     )@@ -3439,16 +3389,6 @@   , (STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT, "PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT")   , (STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT    , "RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT")   , (STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                      , "SAMPLE_LOCATIONS_INFO_EXT")-  , ( STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT-    , "DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"-    )-  , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT, "WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT-    , "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"-    )   , ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID     , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"     )@@ -3545,22 +3485,19 @@   , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR           , "IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT      , "PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT")   , (STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT               , "IMAGE_VIEW_ASTC_DECODE_MODE_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT-    , "PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                , "VI_SURFACE_CREATE_INFO_NN")-  , (STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                     , "VALIDATION_FLAGS_EXT")-  , (STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR   , "DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR            , "DEVICE_GROUP_PRESENT_INFO_KHR")-  , (STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR              , "ACQUIRE_NEXT_IMAGE_INFO_KHR")-  , (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR     , "BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR")-  , (STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR          , "IMAGE_SWAPCHAIN_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR    , "DEVICE_GROUP_PRESENT_CAPABILITIES_KHR")-  , (STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV, "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV")-  , (STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV       , "EXPORT_MEMORY_WIN32_HANDLE_INFO_NV")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV       , "IMPORT_MEMORY_WIN32_HANDLE_INFO_NV")-  , (STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV           , "EXPORT_MEMORY_ALLOCATE_INFO_NV")-  , (STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV     , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV")+  , (STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                     , "VI_SURFACE_CREATE_INFO_NN")+  , (STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                          , "VALIDATION_FLAGS_EXT")+  , (STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR        , "DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR                 , "DEVICE_GROUP_PRESENT_INFO_KHR")+  , (STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR                   , "ACQUIRE_NEXT_IMAGE_INFO_KHR")+  , (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR          , "BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR")+  , (STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR               , "IMAGE_SWAPCHAIN_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR         , "DEVICE_GROUP_PRESENT_CAPABILITIES_KHR")+  , (STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV     , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV")+  , (STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV            , "EXPORT_MEMORY_WIN32_HANDLE_INFO_NV")+  , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV            , "IMPORT_MEMORY_WIN32_HANDLE_INFO_NV")+  , (STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                , "EXPORT_MEMORY_ALLOCATE_INFO_NV")+  , (STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV          , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV     , "PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"     )@@ -3573,17 +3510,12 @@   , ( STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR     , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"     )-  , (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR , "COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR, "PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR")-  , (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR            , "PIPELINE_RENDERING_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR                 , "RENDERING_ATTACHMENT_INFO_KHR")-  , (STRUCTURE_TYPE_RENDERING_INFO_KHR                            , "RENDERING_INFO_KHR")-  , (STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD      , "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")-  , (STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX             , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX")-  , (STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX                    , "IMAGE_VIEW_HANDLE_INFO_NVX")-  , (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                            , "CU_LAUNCH_INFO_NVX")-  , (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX                   , "CU_FUNCTION_CREATE_INFO_NVX")-  , (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                     , "CU_MODULE_CREATE_INFO_NVX")+  , (STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")+  , (STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX       , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX")+  , (STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX              , "IMAGE_VIEW_HANDLE_INFO_NVX")+  , (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                      , "CU_LAUNCH_INFO_NVX")+  , (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX             , "CU_FUNCTION_CREATE_INFO_NVX")+  , (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX               , "CU_MODULE_CREATE_INFO_NVX")   , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT     , "PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"     )@@ -3600,17 +3532,91 @@   , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD     , "PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"     )-  , (STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT         , "DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                 , "WIN32_SURFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR               , "ANDROID_SURFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR               , "WAYLAND_SURFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                   , "XCB_SURFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                  , "XLIB_SURFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                      , "DISPLAY_PRESENT_INFO_KHR")-  , (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR               , "DISPLAY_SURFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                  , "DISPLAY_MODE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_PRESENT_INFO_KHR                              , "PRESENT_INFO_KHR")-  , (STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                     , "SWAPCHAIN_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT   , "DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT")+  , (STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR           , "WIN32_SURFACE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR         , "ANDROID_SURFACE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR         , "WAYLAND_SURFACE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR             , "XCB_SURFACE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR            , "XLIB_SURFACE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                , "DISPLAY_PRESENT_INFO_KHR")+  , (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR         , "DISPLAY_SURFACE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR            , "DISPLAY_MODE_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_PRESENT_INFO_KHR                        , "PRESENT_INFO_KHR")+  , (STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR               , "SWAPCHAIN_CREATE_INFO_KHR")+  , (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS        , "DEVICE_IMAGE_MEMORY_REQUIREMENTS")+  , (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS       , "DEVICE_BUFFER_MEMORY_REQUIREMENTS")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, "PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES  , "PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES")+  , (STRUCTURE_TYPE_FORMAT_PROPERTIES_3                     , "FORMAT_PROPERTIES_3")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES+    , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"+    )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES+    , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"+    )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES+    , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"+    )+  , (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO , "COMMAND_BUFFER_INHERITANCE_RENDERING_INFO")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, "PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES")+  , (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO            , "PIPELINE_RENDERING_CREATE_INFO")+  , (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO                 , "RENDERING_ATTACHMENT_INFO")+  , (STRUCTURE_TYPE_RENDERING_INFO                            , "RENDERING_INFO")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES+    , "PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"+    )+  , ( STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO+    , "DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"+    )+  , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK      , "WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES  , "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES")+  , ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO+    , "PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"+    )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES+    , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"+    )+  , (STRUCTURE_TYPE_IMAGE_RESOLVE_2                          , "IMAGE_RESOLVE_2")+  , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2                      , "BUFFER_IMAGE_COPY_2")+  , (STRUCTURE_TYPE_IMAGE_BLIT_2                             , "IMAGE_BLIT_2")+  , (STRUCTURE_TYPE_IMAGE_COPY_2                             , "IMAGE_COPY_2")+  , (STRUCTURE_TYPE_BUFFER_COPY_2                            , "BUFFER_COPY_2")+  , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2                     , "RESOLVE_IMAGE_INFO_2")+  , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2                        , "BLIT_IMAGE_INFO_2")+  , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2              , "COPY_IMAGE_TO_BUFFER_INFO_2")+  , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2              , "COPY_BUFFER_TO_IMAGE_INFO_2")+  , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2                        , "COPY_IMAGE_INFO_2")+  , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2                       , "COPY_BUFFER_INFO_2")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES+    , "PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"+    )+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, "PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES")+  , (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO                , "COMMAND_BUFFER_SUBMIT_INFO")+  , (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO                     , "SEMAPHORE_SUBMIT_INFO")+  , (STRUCTURE_TYPE_SUBMIT_INFO_2                             , "SUBMIT_INFO_2")+  , (STRUCTURE_TYPE_DEPENDENCY_INFO                           , "DEPENDENCY_INFO")+  , (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2                    , "IMAGE_MEMORY_BARRIER_2")+  , (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2                   , "BUFFER_MEMORY_BARRIER_2")+  , (STRUCTURE_TYPE_MEMORY_BARRIER_2                          , "MEMORY_BARRIER_2")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES+    , "PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"+    )+  , (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO        , "PRIVATE_DATA_SLOT_CREATE_INFO")+  , (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO      , "DEVICE_PRIVATE_DATA_CREATE_INFO")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, "PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES+    , "PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"+    )+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES, "PHYSICAL_DEVICE_TOOL_PROPERTIES")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES+    , "PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"+    )+  , (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO        , "PIPELINE_CREATION_FEEDBACK_CREATE_INFO")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES         , "PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES           , "PHYSICAL_DEVICE_VULKAN_1_3_FEATURES")   , (STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO     , "DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO")   , (STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO   , "MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO")   , (STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO     , "BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO")
src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs view
@@ -75,7 +75,7 @@ -- | 'SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX' specifies that shaders -- compiled for this subpass write the attributes for all views in a single -- invocation of each--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- All pipelines compiled against a subpass that includes this bit /must/ -- write per-view attributes to the @*PerViewNV[]@ shader outputs, in -- addition to the non-per-view (e.g. @Position@) outputs.
src/Vulkan/Core10/Event.hs view
@@ -87,7 +87,7 @@ --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@events@ --     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the implementation --     does not support---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-events events>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events events>, --     and 'createEvent' /must/ not be used -- -- == Valid Usage (Implicit)@@ -131,7 +131,7 @@                -- information about how the event is to be created.                EventCreateInfo             -> -- | @pAllocator@ controls host memory allocation as described in the-               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                -- chapter.                ("allocator" ::: Maybe AllocationCallbacks)             -> io (Event)@@ -219,7 +219,7 @@              -> -- | @event@ is the handle of the event to destroy.                 Event              -> -- | @pAllocator@ controls host memory allocation as described in the-                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                 -- chapter.                 ("allocator" ::: Maybe AllocationCallbacks)              -> io ()@@ -264,7 +264,7 @@ -- If a 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' or -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' command is in a -- command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>, -- then the value returned by this command /may/ immediately be out of -- date. --@@ -304,7 +304,7 @@                   --                   -- #VUID-vkGetEventStatus-event-03940# @event@ /must/ not have been created                   -- with-                  -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+                  -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT'                   --                   -- #VUID-vkGetEventStatus-event-parameter# @event@ /must/ be a valid                   -- 'Vulkan.Core10.Handles.Event' handle@@ -344,7 +344,7 @@ -- -- -   #VUID-vkSetEvent-event-03941# @event@ /must/ not have been created --     with---     'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+--     'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT' -- -- == Valid Usage (Implicit) --@@ -420,12 +420,12 @@ -- -- -   #VUID-vkResetEvent-event-03822# There /must/ be an execution --     dependency between 'resetEvent' and the execution of any---     'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR' that---     includes @event@ in its @pEvents@ parameter+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'+--     that includes @event@ in its @pEvents@ parameter -- -- -   #VUID-vkResetEvent-event-03823# @event@ /must/ not have been created --     with---     'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+--     'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -184,6 +184,12 @@ -- be enabled together due to behavioral differences, or any extension that -- cannot be enabled against the advertised version. --+-- Implementations claiming support for the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>+-- profile /must/ advertise the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>+-- extension in @pProperties@.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter#
src/Vulkan/Core10/Fence.hs view
@@ -139,7 +139,7 @@                -- information about how the fence is to be created.                (FenceCreateInfo a)             -> -- | @pAllocator@ controls host memory allocation as described in the-               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                -- chapter.                ("allocator" ::: Maybe AllocationCallbacks)             -> io (Fence)@@ -184,7 +184,7 @@ -- == Valid Usage -- -- -   #VUID-vkDestroyFence-fence-01120# All---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission> --     commands that refer to @fence@ /must/ have completed execution -- -- -   #VUID-vkDestroyFence-fence-01121# If@@ -228,7 +228,7 @@              -> -- | @fence@ is the handle of the fence to destroy.                 Fence              -> -- | @pAllocator@ controls host memory allocation as described in the-                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                 -- chapter.                 ("allocator" ::: Maybe AllocationCallbacks)              -> io ()@@ -256,7 +256,7 @@ -- = Description -- -- If any member of @pFences@ currently has its--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-importing payload imported>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing payload imported> -- with temporary permanence, that fence’s prior permanent payload is first -- restored. The remaining operations described therefore operate on the -- restored payload.@@ -349,18 +349,18 @@ -- | 'Vulkan.Core10.Enums.Result.NOT_READY'         | The fence specified by @fence@ is unsignaled.                                                                          | -- +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ -- | 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' | The device has been lost. See                                                                                          |--- |                                                | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. |+-- |                                                | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. | -- +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ -- -- Fence Object Status Codes -- -- If a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission> -- command is pending execution, then the value returned by this command -- /may/ immediately be out of date. -- -- If the device has been lost (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>),+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>), -- 'getFenceStatus' /may/ return any of the above status codes. If the -- device has been lost and 'getFenceStatus' is called repeatedly, it will -- eventually return either 'Vulkan.Core10.Enums.Result.SUCCESS' or@@ -476,7 +476,7 @@ -- @timeout@ has expired. -- -- If device loss occurs (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>) -- before the timeout has expired, 'waitForFences' /must/ return in finite -- time with either 'Vulkan.Core10.Enums.Result.SUCCESS' or -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'.
src/Vulkan/Core10/FuncPointers.hs view
@@ -41,7 +41,7 @@ -- -- = Description ----- > described link:https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-host-allocation-scope[here^].+-- > described link:https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-host-allocation-scope[here^]. -- -- = See Also --@@ -120,7 +120,7 @@ -- generate 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' at the -- appropriate time for the command in which the condition was detected, as -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Return Codes>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-errorcodes Return Codes>. -- -- If the implementation is able to continue correct processing of the -- current command without the requested allocation, then it /may/ do so,
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -117,13 +117,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageBlit',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind' data Offset3D = Offset3D   { -- | @x@ is the x offset.@@ -260,13 +260,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind'@@ -335,10 +335,11 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV', -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getPhysicalDevicePresentRectanglesKHR' data Rect2D = Rect2D@@ -447,7 +448,7 @@ -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',@@ -464,21 +465,21 @@ -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',--- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',@@ -488,13 +489,13 @@ -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',@@ -515,27 +516,27 @@ -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductPropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures', -- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceSparseProperties', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',--- 'Vulkan.Extensions.VK_KHR_synchronization2.PhysicalDeviceSynchronization2FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',@@ -547,11 +548,13 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Features',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',@@ -588,12 +591,19 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable', -- '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.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',@@ -742,12 +752,12 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',@@ -765,12 +775,13 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',@@ -786,6 +797,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -91,12 +91,12 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',@@ -114,12 +114,13 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',@@ -135,6 +136,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
src/Vulkan/Core10/Handles.hs view
@@ -190,6 +190,7 @@ -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.getPhysicalDeviceToolProperties', -- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>,@@ -263,6 +264,7 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.createIndirectCommandsLayoutNV', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.createQueryPool', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',@@ -305,6 +307,7 @@ -- 'Vulkan.Core10.Pipeline.destroyPipeline', -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.destroyQueryPool', -- 'Vulkan.Core10.Pass.destroyRenderPass',@@ -343,13 +346,16 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport', -- 'Vulkan.Extensions.VK_KHR_maintenance3.getDescriptorSetLayoutSupportKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getDeviceAccelerationStructureCompatibilityKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceBufferMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.getDeviceGroupPeerMemoryFeatures', -- 'Vulkan.Extensions.VK_KHR_device_group.getDeviceGroupPeerMemoryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupPresentCapabilitiesKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getDeviceGroupSurfacePresentModes2EXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupSurfacePresentModesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR', -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress',@@ -389,6 +395,7 @@ -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutablePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT', -- 'Vulkan.Core10.Query.getQueryPoolResults', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingCaptureReplayShaderGroupHandlesKHR',@@ -436,6 +443,7 @@ -- 'Vulkan.Core10.Event.setEvent', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.signalSemaphoreKHR',@@ -482,6 +490,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.queueSetPerformanceConfigurationINTEL', -- 'Vulkan.Core10.Queue.queueSubmit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR', -- 'Vulkan.Core10.Queue.queueWaitIdle' data Queue = Queue@@ -503,7 +512,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_KHR_synchronization2.CommandBufferSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo', -- 'Vulkan.Core10.Queue.SubmitInfo', -- 'Vulkan.Core10.CommandBuffer.allocateCommandBuffers', -- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer',@@ -514,6 +523,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- '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>,@@ -525,8 +535,10 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',@@ -539,12 +551,16 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdCopyAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureToMemoryKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBuffer2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBuffer2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyMemoryToAccelerationStructureKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',@@ -581,6 +597,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdEndRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdEndRenderPass2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdEndRendering', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdEndRenderingKHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR>,@@ -592,36 +609,47 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdNextSubpass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdNextSubpass2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdResolveImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable', -- '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.Core11.Promoted_From_VK_KHR_device_group.cmdSetDeviceMask', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdSetDeviceMaskKHR', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.cmdSetFragmentShadingRateEnumNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth',@@ -630,22 +658,29 @@ -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR',@@ -653,12 +688,14 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD', -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR', -- 'Vulkan.Core10.CommandBuffer.endCommandBuffer', -- 'Vulkan.Core10.CommandBuffer.freeCommandBuffers',@@ -743,13 +780,13 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',+-- '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.Core10.DescriptorSet.DescriptorBufferInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',@@ -765,6 +802,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',@@ -824,18 +862,18 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBindInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageOpaqueMemoryBindInfo', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory',@@ -870,7 +908,7 @@ -- 'Vulkan.Core10.Pass.FramebufferCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,@@ -1061,6 +1099,7 @@ -- 'Vulkan.Core10.Fence.getFenceStatus', -- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse', -- 'Vulkan.Core10.Queue.queueSubmit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT',@@ -1089,7 +1128,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo', -- 'Vulkan.Core10.Queue.SubmitInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR',@@ -1112,10 +1151,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', -- 'Vulkan.Core10.Event.createEvent', 'Vulkan.Core10.Event.destroyEvent', -- 'Vulkan.Core10.Event.getEventStatus', 'Vulkan.Core10.Event.resetEvent',@@ -1143,6 +1185,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR', -- 'Vulkan.Core10.Query.createQueryPool', -- 'Vulkan.Core10.Query.destroyQueryPool',
src/Vulkan/Core10/Image.hs view
@@ -123,7 +123,7 @@ -- -   #VUID-vkCreateImage-pNext-06389# If a --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA' --     has been chained to @pNext@, @pCreateInfo@ /must/ match the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen >+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen > --     excepting members 'ImageCreateInfo'::@extent@ and --     'ImageCreateInfo'::@usage@ in the match criteria --@@ -168,7 +168,7 @@                -- parameters to be used to create the image.                (ImageCreateInfo a)             -> -- | @pAllocator@ controls host memory allocation as described in the-               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                -- chapter.                ("allocator" ::: Maybe AllocationCallbacks)             -> io (Image)@@ -261,7 +261,7 @@              -> -- | @image@ is the image to destroy.                 Image              -> -- | @pAllocator@ controls host memory allocation as described in the-                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                 -- chapter.                 ("allocator" ::: Maybe AllocationCallbacks)              -> io ()@@ -290,14 +290,14 @@ -- = Description -- -- If the image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>, -- then the returned layout is valid for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-hostaccess host access>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host access>. -- -- If the image’s tiling is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and its format is -- a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, -- then 'getImageSubresourceLayout' describes one /format plane/ of the -- image. If the image’s tiling is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',@@ -305,10 +305,10 @@ -- image. If the image’s tiling is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' -- and the image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then the returned layout has an implementation-dependent meaning; the -- vendor of the image’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-drm-format-modifier DRM format modifier>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier DRM format modifier> -- /may/ provide documentation that explains how to interpret the returned -- layout. --@@ -359,7 +359,7 @@ -- -   #VUID-vkGetImageSubresourceLayout-format-01581# If the @tiling@ of --     the @image@ is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' --     and its @format@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> --     with two planes, the @aspectMask@ member of @pSubresource@ /must/ be --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' --     or@@ -368,7 +368,7 @@ -- -   #VUID-vkGetImageSubresourceLayout-format-01582# If the @tiling@ of --     the @image@ is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' --     and its @format@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> --     with three planes, the @aspectMask@ member of @pSubresource@ /must/ --     be --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',@@ -470,11 +470,11 @@ --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' -- -- Images created with one of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>, -- have further restrictions on their limits and capabilities compared to -- images created with other formats. Creation of images with a format -- requiring--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- /may/ not be supported unless other parameters meet all of the -- constraints: --@@ -511,7 +511,7 @@ -- a @usage@ bit is valid if it is supported for at least one of the -- formats a 'Vulkan.Core10.Handles.ImageView' created from the image /can/ -- have (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views Image Views>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views> -- for more detail). -- -- == Image Creation Limits@@ -528,7 +528,7 @@ -- referenced by the relevant valid usage statements of 'ImageCreateInfo'. -- -- -   Let @uint64_t imageCreateDrmFormatModifiers[]@ be the set of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifiers>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifiers> --     that the resultant image /may/ have. -- --     -   If @tiling@ is not@@ -548,7 +548,7 @@ -- -- -   Let @VkBool32 imageCreateMaybeLinear@ indicate if the resultant --     image may be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>. -- --     -   If @tiling@ is --         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', then@@ -756,7 +756,7 @@ -- -- -   #VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251# Each of the --     following values (as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) --     /must/ not be undefined : @imageCreateMaxMipLevels@, --     @imageCreateMaxArrayLayers@, @imageCreateMaxExtent@, and --     @imageCreateSampleCounts@@@ -819,15 +819,15 @@ -- -- -   #VUID-VkImageCreateInfo-extent-02252# @extent.width@ /must/ be less --     than or equal to @imageCreateMaxExtent.width@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- -   #VUID-VkImageCreateInfo-extent-02253# @extent.height@ /must/ be less --     than or equal to @imageCreateMaxExtent.height@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- -   #VUID-VkImageCreateInfo-extent-02254# @extent.depth@ /must/ be less --     than or equal to @imageCreateMaxExtent.depth@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- -   #VUID-VkImageCreateInfo-imageType-00954# If @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @flags@ contains@@ -849,11 +849,11 @@ -- -- -   #VUID-VkImageCreateInfo-mipLevels-02255# @mipLevels@ /must/ be less --     than or equal to @imageCreateMaxMipLevels@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- -   #VUID-VkImageCreateInfo-arrayLayers-02256# @arrayLayers@ /must/ be --     less than or equal to @imageCreateMaxArrayLayers@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- -   #VUID-VkImageCreateInfo-imageType-00961# If @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', @arrayLayers@ /must/@@ -866,7 +866,7 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT', --     @mipLevels@ /must/ be equal to @1@, and @imageCreateMaybeLinear@ (as --     defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) --     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE', -- -- -   #VUID-VkImageCreateInfo-samples-02558# If @samples@ is not@@ -902,14 +902,14 @@ --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@ -- -- -   #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset> --     is not enabled and @usage@ includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', --     @extent.width@ /must/ be less than or equal to --     \(\left\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\right\rceil\) -- -- -   #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset> --     is not enabled and @usage@ includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', --     @extent.height@ /must/ be less than or equal to@@ -925,22 +925,22 @@ -- -- -   #VUID-VkImageCreateInfo-samples-02258# @samples@ /must/ be a bit --     value that is set in @imageCreateSampleCounts@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- -   #VUID-VkImageCreateInfo-usage-00968# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images> --     feature is not enabled, and @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT', --     @samples@ /must/ be --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- -   #VUID-VkImageCreateInfo-flags-00969# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseBinding sparse bindings>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparse bindings> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT' -- -- -   #VUID-VkImageCreateInfo-flags-01924# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT' --@@ -955,21 +955,21 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkImageCreateInfo-imageType-00971# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyImage2D sparse residency for 2D images>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage2D sparse residency for 2D images> --     feature is not enabled, and @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', @flags@ /must/ not --     contain --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkImageCreateInfo-imageType-00972# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyImage3D sparse residency for 3D images>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage3D sparse residency for 3D images> --     feature is not enabled, and @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', @flags@ /must/ not --     contain --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkImageCreateInfo-imageType-00973# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency2Samples sparse residency for images with 2 samples>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency2Samples sparse residency for images with 2 samples> --     feature is not enabled, @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT',@@ -977,7 +977,7 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkImageCreateInfo-imageType-00974# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency4Samples sparse residency for images with 4 samples>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency4Samples sparse residency for images with 4 samples> --     feature is not enabled, @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_4_BIT',@@ -985,7 +985,7 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkImageCreateInfo-imageType-00975# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency8Samples sparse residency for images with 8 samples>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency8Samples sparse residency for images with 8 samples> --     feature is not enabled, @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_8_BIT',@@ -993,7 +993,7 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- -   #VUID-VkImageCreateInfo-imageType-00976# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency16Samples sparse residency for images with 16 samples>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency16Samples sparse residency for images with 16 samples> --     feature is not enabled, @imageType@ is --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_16_BIT',@@ -1072,13 +1072,13 @@ --     then @mipLevels@ /must/ be one, @arrayLayers@ /must/ be one, --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'. --     and @imageCreateMaybeLinear@ (as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) --     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkImageCreateInfo-flags-01572# If @flags@ contains --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT', --     then @format@ /must/ be a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formats compressed image format>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#compressed_image_formats compressed image format> -- -- -   #VUID-VkImageCreateInfo-flags-01573# If @flags@ contains --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT',@@ -1098,30 +1098,30 @@ -- -- -   #VUID-VkImageCreateInfo-format-06410# If the image @format@ is one --     of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>, --     @mipLevels@ /must/ be 1 -- -- -   #VUID-VkImageCreateInfo-format-06411# If the image @format@ is one --     of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>, --     @samples@ /must/ be --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- -   #VUID-VkImageCreateInfo-format-06412# If the image @format@ is one --     of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>, --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' -- -- -   #VUID-VkImageCreateInfo-format-06413# If the image @format@ is one --     of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>, --     and the @ycbcrImageArrays@ feature is not enabled, @arrayLayers@ --     /must/ be 1 -- -- -   #VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260# If @format@ --     is a /multi-planar/ format, and if @imageCreateFormatFeatures@ (as --     defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) --     does not contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DISJOINT_BIT', --     then @flags@ /must/ not contain@@ -1255,7 +1255,7 @@ --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@ -- -- -   #VUID-VkImageCreateInfo-format-02538# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images> --     feature is not enabled, @format@ is a depth-stencil format and the --     @pNext@ chain includes a --     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'@@ -1344,7 +1344,7 @@ --     is not zero, then all of the formats in --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@ --     /must/ be compatible with the @format@ as described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table> -- -- -   #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'@@ -1423,7 +1423,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_KHR_maintenance4.DeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', -- 'Vulkan.Core10.FundamentalTypes.Extent3D', -- 'Vulkan.Core10.Enums.Format.Format', -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags',@@ -1460,7 +1460,7 @@   , -- | @samples@ is a     -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value     -- specifying the number of-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling samples per texel>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling samples per texel>.     samples :: SampleCountFlagBits   , -- | @tiling@ is a 'Vulkan.Core10.Enums.ImageTiling.ImageTiling' value     -- specifying the tiling arrangement of the texel blocks in memory.@@ -1480,7 +1480,7 @@   , -- | @initialLayout@ is a 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value     -- specifying the initial 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' of     -- all image subresources of the image. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-layouts Image Layouts>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts Image Layouts>.     initialLayout :: ImageLayout   }   deriving (Typeable)@@ -1590,7 +1590,7 @@ -- = Description -- -- If the image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>, -- then @rowPitch@, @arrayPitch@ and @depthPitch@ describe the layout of -- the image subresource in linear memory. For uncompressed formats, -- @rowPitch@ is the number of bytes between texels with the same x@@ -1636,7 +1636,7 @@ -- interleaved memory allocation. -- -- If the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- and its tiling is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' -- , then the @aspectMask@ member of -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource' /must/@@ -1658,13 +1658,13 @@ -- allowed plane index /i/ is defined by the -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@ -- associated with the image’s 'ImageCreateInfo'::@format@ and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-drm-format-modifier modifier>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier modifier>. -- The memory range used by the subresource is described by @offset@ and -- @size@. If the image is /disjoint/, then the @offset@ is relative to the -- base address of the /memory plane/. If the image is /non-disjoint/, then -- the @offset@ is relative to the base address of the image. If the image -- is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then @rowPitch@, @arrayPitch@, and @depthPitch@ have an -- implementation-dependent meaning. --
src/Vulkan/Core10/ImageView.hs view
@@ -140,7 +140,7 @@                    -- containing parameters to be used to create the image view.                    (ImageViewCreateInfo a)                 -> -- | @pAllocator@ controls host memory allocation as described in the-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                    -- chapter.                    ("allocator" ::: Maybe AllocationCallbacks)                 -> io (ImageView)@@ -229,7 +229,7 @@                  -> -- | @imageView@ is the image view to destroy.                     ImageView                  -> -- | @pAllocator@ controls host memory allocation as described in the-                    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                     -- chapter.                     ("allocator" ::: Maybe AllocationCallbacks)                  -> io ()@@ -364,7 +364,7 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' if -- @format@ is a color, depth-only or stencil-only format, respectively, -- except if @format@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>. -- If using a depth\/stencil format with both depth and stencil components, -- @aspectMask@ /must/ include at least one of -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and@@ -394,14 +394,14 @@ -- both depth and stencil image subresources are used. -- -- When creating a 'Vulkan.Core10.Handles.ImageView', if--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- is enabled in the sampler, the @aspectMask@ of a @subresourceRange@ used -- by the 'Vulkan.Core10.Handles.ImageView' /must/ be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'. -- -- When creating a 'Vulkan.Core10.Handles.ImageView', if sampler Y′CBCR -- conversion is not enabled in the sampler and the image @format@ is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>, -- the image /must/ have been created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT', -- and the @aspectMask@ of the 'Vulkan.Core10.Handles.ImageView'’s@@ -447,7 +447,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'ImageViewCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage'@@ -555,13 +555,13 @@ -- If @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' -- flag, and if the @format@ of the image is not--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>, -- @format@ /can/ be different from the image’s format, but if @image@ was -- created without the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' -- flag and they are not equal they /must/ be /compatible/. Image format -- compatibility is defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes> -- section. Views of compatible formats will have the same mapping between -- texel coordinates and memory locations irrespective of the @format@, -- with only the interpretation of the bit pattern changing.@@ -575,14 +575,14 @@ -- read through a view with a floating point format. Similarly, a value -- written through a signed normalized format that has a bit pattern -- exactly equal to -2b /may/ be changed to -2b + 1 as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>. -- -- If @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' -- flag, @format@ /must/ be /compatible/ with the image’s format as -- described above, or /must/ be an uncompressed format in which case it -- /must/ be /size-compatible/ with the image’s format, as defined for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>. -- In this case, the resulting image view’s texel dimensions equal the -- dimensions of the selected mip level divided by the compressed texel -- block size and rounded up.@@ -593,10 +593,10 @@ -- storage image descriptors, input attachment descriptors, framebuffer -- attachments, and any 'Vulkan.Core10.Handles.ImageView' used with a -- combined image sampler that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y’CBCR conversion>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y’CBCR conversion>. -- -- If the image view is to be used with a sampler which supports--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>, -- an /identically defined object/ of type -- 'Vulkan.Core11.Handles.SamplerYcbcrConversion' to that used to create -- the sampler /must/ be passed to 'createImageView' in a@@ -608,37 +608,37 @@ -- when sampling the image. -- -- If the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- @format@ and @subresourceRange.aspectMask@ is -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', then -- the @format@ /must/ be identical to the image @format@, and the sampler -- to be used with the image view /must/ enable--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- -- If @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' -- and the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- @format@, and if @subresourceRange.aspectMask@ is -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT', -- @format@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes compatible>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible> -- with the corresponding plane of the image, and the sampler to be used -- with the image view /must/ not enable--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- The @width@ and @height@ of the single-plane image view /must/ be -- derived from the multi-planar image’s dimensions in the manner listed -- for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes plane compatibility>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes plane compatibility> -- for the plane. -- -- Any view of an image plane will have the same mapping between texel -- coordinates and memory locations as used by the components of the color -- aspect, subject to the formulae relating texel coordinates to -- lower-resolution planes as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction Chroma Reconstruction>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction Chroma Reconstruction>. -- That is, if an R or B plane has a reduced resolution relative to the G -- plane of the multi-planar image, the image view operates using the -- (/uplane/, /vplane/) unnormalized coordinates of the reduced-resolution@@ -681,7 +681,7 @@ --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' -- -- -   #VUID-VkImageViewCreateInfo-viewType-01004# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-imageCubeArray image cube map arrays>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCubeArray image cube map arrays> --     feature is not enabled, @viewType@ /must/ not be --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' --@@ -718,67 +718,67 @@ -- -   #VUID-VkImageViewCreateInfo-image-04441# @image@ /must/ have been --     created with a @usage@ value containing at least one of the usages --     defined in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#valid-imageview-imageusage valid image usage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#valid-imageview-imageusage valid image usage> --     list for image views -- -- -   #VUID-VkImageViewCreateInfo-None-02273# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     of the resultant image view /must/ contain at least one bit -- -- -   #VUID-VkImageViewCreateInfo-usage-02274# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', --     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     of the resultant image view /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT' -- -- -   #VUID-VkImageViewCreateInfo-usage-02275# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_BIT' -- -- -   #VUID-VkImageViewCreateInfo-usage-02276# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- -- -   #VUID-VkImageViewCreateInfo-usage-02277# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   #VUID-VkImageViewCreateInfo-usage-06516# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV', --     if the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled -- -- -   #VUID-VkImageViewCreateInfo-usage-06517# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     must contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV', --     if the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled -- -- -   #VUID-VkImageViewCreateInfo-usage-02652# If @usage@ contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain at least one of --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --     or@@ -834,7 +834,7 @@ --     computed from @baseMipLevel@ and @extent.depth@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created, --     according to the formula defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing> -- -- -   #VUID-VkImageViewCreateInfo-subresourceRange-02725# If --     @subresourceRange.layerCount@ is not@@ -850,7 +850,7 @@ --     @baseMipLevel@ and @extent.depth@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created, --     according to the formula defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing> -- -- -   #VUID-VkImageViewCreateInfo-image-01761# If @image@ was created with --     the@@ -858,10 +858,10 @@ --     flag, but without the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' --     flag, and if the @format@ of the @image@ is not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> --     format, @format@ /must/ be compatible with the @format@ used to --     create @image@, as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes> -- -- -   #VUID-VkImageViewCreateInfo-image-01583# If @image@ was created with --     the@@ -895,7 +895,7 @@ --     the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' --     flag, if the @format@ of the @image@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> --     format, and if @subresourceRange.aspectMask@ is one of --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',@@ -904,20 +904,20 @@ --     then @format@ /must/ be compatible with the --     'Vulkan.Core10.Enums.Format.Format' for the plane of the @image@ --     @format@ indicated by @subresourceRange.aspectMask@, as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes> -- -- -   #VUID-VkImageViewCreateInfo-image-01762# If @image@ was not created --     with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' --     flag, or if the @format@ of the @image@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> --     format and if @subresourceRange.aspectMask@ is --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', --     @format@ /must/ be identical to the @format@ used to create @image@ -- -- -   #VUID-VkImageViewCreateInfo-format-06415# If the image @format@ is --     one of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>, --     then the @pNext@ chain /must/ include a --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' --     structure with a conversion value other than@@ -937,7 +937,7 @@ --     structure with a @conversion@ value other than --     'Vulkan.Core10.APIConstants.NULL_HANDLE', all members of --     @components@ /must/ have the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   #VUID-VkImageViewCreateInfo-image-01020# If @image@ is non-sparse --     then it /must/ be bound completely and contiguously to a single@@ -945,23 +945,23 @@ -- -- -   #VUID-VkImageViewCreateInfo-subResourceRange-01021# @viewType@ --     /must/ be compatible with the type of @image@ as shown in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table> -- -- -   #VUID-VkImageViewCreateInfo-image-02399# If @image@ has an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>, --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-VkImageViewCreateInfo-image-02400# If @image@ has an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>, --     the @pNext@ chain /must/ include a --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' --     structure with a @conversion@ object created with the same external --     format as @image@ -- -- -   #VUID-VkImageViewCreateInfo-image-02401# If @image@ has an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>, --     all members of @components@ /must/ be the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   #VUID-VkImageViewCreateInfo-image-02086# If @image@ was created with --     @usage@ containing@@ -971,36 +971,36 @@ --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' -- -- -   #VUID-VkImageViewCreateInfo-image-02087# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage feature> --     is enabled, and If @image@ was created with @usage@ containing --     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT' -- -- -   #VUID-VkImageViewCreateInfo-usage-04550# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is enabled, and the @usage@ for the image view includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   #VUID-VkImageViewCreateInfo-usage-04551# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is enabled, the @usage@ for the image view includes --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments> --     is 'Vulkan.Core10.FundamentalTypes.FALSE', --     @subresourceRange.layerCount@ /must/ be @1@ -- -- -   #VUID-VkImageViewCreateInfo-flags-02572# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' -- -- -   #VUID-VkImageViewCreateInfo-flags-03567# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapDeferred deferred fragment density map>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDeferred deferred fragment density map> --     feature is not enabled, @flags@ /must/ not contain --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' --@@ -1015,10 +1015,10 @@ --     and @usage@ containing --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', --     @subresourceRange.layerCount@ /must/ be less than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers> -- -- -   #VUID-VkImageViewCreateInfo-invocationMask-04993# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask invocationMask feature> --     is enabled, and if @image@ was created with @usage@ containing --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI', --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'@@ -1121,7 +1121,7 @@ --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageViewFormatSwizzle@ --     is 'Vulkan.Core10.FundamentalTypes.FALSE', all elements of --     @components@ /must/ have the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   #VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466# --     If the @VK_KHR_portability_subset@ extension is enabled, and
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -244,7 +244,7 @@     layerName :: ByteString   , -- | @specVersion@ is the Vulkan version the layer was written to, encoded as     -- described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.     specVersion :: Word32   , -- | @implementationVersion@ is the version of this layer. It is an integer,     -- increasing with backward compatible changes.
src/Vulkan/Core10/Memory.hs view
@@ -140,7 +140,7 @@ -- The maximum number of valid memory allocations that /can/ exist -- simultaneously within a 'Vulkan.Core10.Handles.Device' /may/ be -- restricted by implementation- or platform-dependent limits. The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMemoryAllocationCount maxMemoryAllocationCount>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMemoryAllocationCount maxMemoryAllocationCount> -- feature describes the number of allocations that /can/ exist -- simultaneously before encountering these internal limits. --@@ -228,7 +228,7 @@ --     created from -- -- -   #VUID-vkAllocateMemory-deviceCoherentMemory-02790# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory> --     feature is not enabled, @pAllocateInfo->memoryTypeIndex@ /must/ not --     identify a memory type supporting --     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'@@ -285,7 +285,7 @@                   -- permitted by the implementation.                   (MemoryAllocateInfo a)                -> -- | @pAllocator@ controls host memory allocation as described in the-                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                   -- chapter.                   ("allocator" ::: Maybe AllocationCallbacks)                -> io (DeviceMemory)@@ -342,7 +342,7 @@ -- -- How memory objects are bound to Images and Buffers is described in -- detail in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-association Resource Memory Association>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association Resource Memory Association> -- section. -- -- If a memory object is mapped at the time it is freed, it is implicitly@@ -351,7 +351,7 @@ -- Note -- -- As described--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-unmap-does-not-flush below>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-unmap-does-not-flush below>, -- host writes are not implicitly flushed when the memory object is -- unmapped, but the implementation /must/ guarantee that writes that have -- not been flushed do not affect any other memory.@@ -393,7 +393,7 @@            -> -- | @memory@ is the 'Vulkan.Core10.Handles.DeviceMemory' object to be freed.               DeviceMemory            -> -- | @pAllocator@ controls host memory allocation as described in the-              -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+              -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>               -- chapter.               ("allocator" ::: Maybe AllocationCallbacks)            -> io ()@@ -444,7 +444,7 @@ -- range has completed before the host reads from or writes to that range, -- and that any previously submitted command that reads from that range has -- completed before the host writes to that region (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-host-writes here>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writes here> -- for details on fulfilling such a guarantee). If the device memory was -- allocated without the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'@@ -463,7 +463,7 @@ -- -- It is important for the application developer to become meticulously -- familiar with all of the mechanisms described in the chapter on--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization Synchronization and Cache Control>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization Synchronization and Cache Control> -- as they are crucial to maintaining memory access ordering. -- -- == Valid Usage@@ -635,9 +635,9 @@ -- ranges described by @pMemoryRanges@ are made available to the host -- memory domain, such that they /can/ be made available to the device -- memory domain via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible memory domain operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible memory domain operations> -- using the 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>. -- -- Within each range described by @pMemoryRanges@, each set of -- @nonCoherentAtomSize@ bytes in that range is flushed if any byte in that@@ -718,7 +718,7 @@ -- available to the host memory domain using the -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT' and -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access types>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access types>, -- are made visible to the host. If a range of non-coherent memory is -- written by the host and then invalidated without first being flushed, -- its contents are undefined.@@ -1205,7 +1205,7 @@ --     structure with @image@ that is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', each bit set in the usage --     of @image@ /must/ be listed in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>, --     and if there is a corresponding @AHARDWAREBUFFER_USAGE@ bit listed --     that bit /must/ be included in the Android hardware buffer’s --     @AHardwareBuffer_Desc@::@usage@@@ -1222,7 +1222,7 @@ --     includes --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT', --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay> --     feature /must/ be enabled -- -- -   #VUID-VkMemoryAllocateInfo-flags-03331# If@@ -1230,7 +1230,7 @@ --     includes --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT', --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> --     feature /must/ be enabled -- -- -   #VUID-VkMemoryAllocateInfo-pNext-03332# If the @pNext@ chain
src/Vulkan/Core10/OtherTypes.hs view
@@ -72,15 +72,15 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. -- -- == Valid Usage (Implicit)@@ -95,7 +95,7 @@ data MemoryBarrier = MemoryBarrier   { -- | @srcAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.     --     -- #VUID-VkMemoryBarrier-srcAccessMask-parameter# @srcAccessMask@ /must/ be     -- a valid combination of@@ -103,7 +103,7 @@     srcAccessMask :: AccessFlags   , -- | @dstAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.     --     -- #VUID-VkMemoryBarrier-dstAccessMask-parameter# @dstAccessMask@ /must/ be     -- a valid combination of@@ -155,20 +155,20 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified buffer range, via -- access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. If @srcAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT', memory -- writes performed by that access type are also made visible, as that -- access type is not performed through a resource. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified buffer range, via -- access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. If @dstAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT' or -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT', available@@ -178,14 +178,14 @@ -- If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, and -- @srcQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- for the specified buffer range, and the second access scope includes no -- access, as if @dstAccessMask@ was @0@. -- -- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and -- @dstQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- for the specified buffer range, and the first access scope includes no -- access, as if @srcAccessMask@ was @0@. --@@ -231,7 +231,7 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> -- -- -   #VUID-VkBufferMemoryBarrier-synchronization2-03853# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature> --     is not enabled, and @buffer@ was created with a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at least --     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be@@ -259,17 +259,17 @@ data BufferMemoryBarrier = BufferMemoryBarrier   { -- | @srcAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.     srcAccessMask :: AccessFlags   , -- | @dstAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.     dstAccessMask :: AccessFlags   , -- | @srcQueueFamilyIndex@ is the source queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.     srcQueueFamilyIndex :: Word32   , -- | @dstQueueFamilyIndex@ is the destination queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.     dstQueueFamilyIndex :: Word32   , -- | @buffer@ is a handle to the buffer whose backing memory is affected by     -- the barrier.@@ -351,20 +351,20 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified image subresource -- range, via access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. If @srcAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT', memory -- writes performed by that access type are also made visible, as that -- access type is not performed through a resource. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified image subresource -- range, via access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. If @dstAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT' or -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT', available@@ -374,28 +374,28 @@ -- If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, and -- @srcQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- for the specified image subresource range, and the second access scope -- includes no access, as if @dstAccessMask@ was @0@. -- -- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and -- @dstQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- for the specified image subresource range, and the first access scope -- includes no access, as if @srcAccessMask@ was @0@. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature> -- is not enabled or @oldLayout@ is not equal to @newLayout@, @oldLayout@ -- and @newLayout@ define an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition> -- for the specified image subresource range. -- -- Note -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature> -- is enabled, when the old and new layout are equal, the layout values are -- ignored - data is preserved no matter what values are specified, or what -- layout the image is currently in.@@ -590,7 +590,7 @@ --     or @oldLayout@ and @newLayout@ define an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL', --     @image@ /must/ have been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' --     or@@ -602,7 +602,7 @@ --     or @oldLayout@ and @newLayout@ define an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL', --     @image@ /must/ have been created with at least one of --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or@@ -681,7 +681,7 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> -- -- -   #VUID-VkImageMemoryBarrier-synchronization2-03857# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature> --     is not enabled, and @image@ was created with a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at least --     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be@@ -727,28 +727,28 @@     next :: Chain es   , -- | @srcAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.     srcAccessMask :: AccessFlags   , -- | @dstAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.     dstAccessMask :: AccessFlags   , -- | @oldLayout@ is the old layout in an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.     oldLayout :: ImageLayout   , -- | @newLayout@ is the new layout in an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.     newLayout :: ImageLayout   , -- | @srcQueueFamilyIndex@ is the source queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.     srcQueueFamilyIndex :: Word32   , -- | @dstQueueFamilyIndex@ is the destination queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.     dstQueueFamilyIndex :: Word32   , -- | @image@ is a handle to the image affected by this barrier.     image :: Image   , -- | @subresourceRange@ describes the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views image subresource range>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range>     -- within @image@ that is affected by this barrier.     subresourceRange :: ImageSubresourceRange   }@@ -945,10 +945,10 @@ -- -   #VUID-VkDrawIndirectCommand-None-00500# For a given vertex buffer --     binding, any attribute data fetched /must/ be entirely contained --     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input> -- -- -   #VUID-VkDrawIndirectCommand-firstInstance-00501# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance> --     feature is not enabled, @firstInstance@ /must/ be @0@ -- -- = See Also@@ -1026,7 +1026,7 @@ --     buffer binding, any attribute data fetched /must/ be entirely --     contained within the corresponding vertex buffer binding, as --     described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input> -- -- -   #VUID-VkDrawIndexedIndirectCommand-indexSize-00553# (@indexSize@ × --     (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or@@ -1036,7 +1036,7 @@ --     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- -- -   #VUID-VkDrawIndexedIndirectCommand-firstInstance-00554# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance> --     feature is not enabled, @firstInstance@ /must/ be @0@ -- -- = See Also
src/Vulkan/Core10/Pass.hs view
@@ -203,7 +203,7 @@                      -- describing additional information about framebuffer creation.                      (FramebufferCreateInfo a)                   -> -- | @pAllocator@ controls host memory allocation as described in the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                      -- chapter.                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io (Framebuffer)@@ -293,7 +293,7 @@                    -> -- | @framebuffer@ is the handle of the framebuffer to destroy.                       Framebuffer                    -> -- | @pAllocator@ controls host memory allocation as described in the-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                       -- chapter.                       ("allocator" ::: Maybe AllocationCallbacks)                    -> io ()@@ -359,7 +359,7 @@                     -- describing the parameters of the render pass.                     (RenderPassCreateInfo a)                  -> -- | @pAllocator@ controls host memory allocation as described in the-                    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                     -- chapter.                     ("allocator" ::: Maybe AllocationCallbacks)                  -> io (RenderPass)@@ -449,7 +449,7 @@                   -> -- | @renderPass@ is the handle of the render pass to destroy.                      RenderPass                   -> -- | @pAllocator@ controls host memory allocation as described in the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                      -- chapter.                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io ()@@ -500,7 +500,7 @@ -- Subpass dependencies are not affected by the render area, and apply to -- the entire image subresources attached to the framebuffer as specified -- in the description of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-layout-transitions automatic layout transitions>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions automatic layout transitions>. -- Similarly, pipeline barriers are valid even if their effect extends -- outside the render area. --@@ -600,9 +600,9 @@ -- to the format of the attachment, before they are resolved or stored at -- the end of a render pass instance via @storeOp@. Conversions occur as -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-fixedconv Fixed-Point Data Conversions>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedconv Fixed-Point Data Conversions>. -- -- If @flags@ includes -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT',@@ -650,7 +650,7 @@ -- color or depth\/stencil attachments nor as resolve or preserve -- attachments. The precise set of valid scenarios is described in more -- detail--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop below>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop below>. -- -- If a set of attachments alias each other, then all except the first to -- be used in the render pass /must/ use an @initialLayout@ of@@ -712,7 +712,7 @@ -- -- -   #VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> --     feature is not enabled, @initialLayout@ /must/ not be --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',@@ -722,7 +722,7 @@ -- -- -   #VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> --     feature is not enabled, @finalLayout@ /must/ not be --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',@@ -1031,7 +1031,7 @@ -- attachment at the fragment’s (x, y, layer) framebuffer coordinates. -- Input attachments /must/ not be used by any subpasses within a render -- pass that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. -- -- Each element of the @pColorAttachments@ array corresponds to an output -- location in the shader, i.e. if the shader declares an output variable@@ -1039,7 +1039,7 @@ -- provided in @pColorAttachments@[__X__]. If the @attachment@ member of -- any element of @pColorAttachments@ is -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or if--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable> -- has been disabled for the corresponding attachment index, then writes to -- the corresponding location by a fragment shader are discarded. --@@ -1175,7 +1175,7 @@ --     in @pInputAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain at least --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --     or@@ -1185,7 +1185,7 @@ --     in @pColorAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1193,7 +1193,7 @@ --     attachments in @pResolveAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1201,42 +1201,42 @@ --     @pDepthStencilAttachment@ is not @NULL@ and the attachment is not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have --     an image format whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   #VUID-VkSubpassDescription-linearColorAttachment-06496# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled and the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all --     attachments in @pInputAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- -   #VUID-VkSubpassDescription-linearColorAttachment-06497# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled and the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all --     attachments in @pColorAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- -   #VUID-VkSubpassDescription-linearColorAttachment-06498# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled and the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all --     attachments in @pResolveAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- -   #VUID-VkSubpassDescription-pColorAttachments-01506# If the --     @VK_AMD_mixed_attachment_samples@ extension is enabled, and all@@ -1269,7 +1269,7 @@ -- -- -   #VUID-VkSubpassDescription-None-04437# Each attachment /must/ follow --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements> --     specified for its attachment type -- -- -   #VUID-VkSubpassDescription-flags-00856# If @flags@ includes@@ -1453,7 +1453,7 @@ -- -- If @srcSubpass@ is equal to @dstSubpass@ then the 'SubpassDependency' -- describes a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependency>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependency>, -- and only constrains the pipeline barriers allowed within a subpass -- instance. Otherwise, when a render pass instance which includes a -- subpass dependency is submitted to a queue, it defines a memory@@ -1462,9 +1462,9 @@ -- -- If @srcSubpass@ is equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', the first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass' used -- to begin the render pass instance. Otherwise, the first set of commands -- includes all commands submitted as part of the subpass instance@@ -1472,14 +1472,14 @@ -- operations on attachments used in @srcSubpass@. In either case, the -- first synchronization scope is limited to operations on the pipeline -- stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. -- -- If @dstSubpass@ is equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', the second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass' used to -- end the render pass instance. Otherwise, the second set of commands -- includes all commands submitted as part of the subpass instance@@ -1487,29 +1487,29 @@ -- operations on attachments used in @dstSubpass@. In either case, the -- second synchronization scope is limited to operations on the pipeline -- stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. It is also limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. It is also limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations> -- defined by a subpass dependency affect the execution of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions> -- within the render pass. -- -- Note@@ -1641,28 +1641,28 @@ -- -   #VUID-VkSubpassDependency-srcSubpass-00867# If @srcSubpass@ is equal --     to @dstSubpass@ and not all of the stages in @srcStageMask@ and --     @dstStageMask@ are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>, --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest> --     pipeline stage in @srcStageMask@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier> --     than or equal to the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest> --     pipeline stage in @dstStageMask@ -- -- -   #VUID-VkSubpassDependency-srcAccessMask-00868# Any access flag --     included in @srcAccessMask@ /must/ be supported by one of the --     pipeline stages in @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- -   #VUID-VkSubpassDependency-dstAccessMask-00869# Any access flag --     included in @dstAccessMask@ /must/ be supported by one of the --     pipeline stages in @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- -   #VUID-VkSubpassDependency-srcSubpass-02243# If @srcSubpass@ equals --     @dstSubpass@, and @srcStageMask@ and @dstStageMask@ both include a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>, --     then @dependencyFlags@ /must/ include --     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' --@@ -1724,20 +1724,20 @@   , -- | @srcStageMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'     -- specifying the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.     srcStageMask :: PipelineStageFlags   , -- | @dstStageMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'     -- specifying the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>     dstStageMask :: PipelineStageFlags   , -- | @srcAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.     srcAccessMask :: AccessFlags   , -- | @dstAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.     dstAccessMask :: AccessFlags   , -- | @dependencyFlags@ is a bitmask of     -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits'.@@ -1930,7 +1930,7 @@ --     'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags --     included in the @srcStageMask@ member of that dependency /must/ be a --     pipeline stage supported by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> --     identified by the @pipelineBindPoint@ member of the source subpass -- -- -   #VUID-VkRenderPassCreateInfo-pDependencies-00838# For any element of@@ -1938,7 +1938,7 @@ --     'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags --     included in the @dstStageMask@ member of that dependency /must/ be a --     pipeline stage supported by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> --     identified by the @pipelineBindPoint@ member of the destination --     subpass --@@ -2092,9 +2092,9 @@ -- Other than the exceptions listed below, applications /must/ ensure that -- all accesses to memory that backs image subresources used as attachments -- in a given render pass instance either happen-before the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops load operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops load operations> -- for those attachments, or happen-after the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops store operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops store operations> -- for those attachments. -- -- The exceptions to the general rule are:@@ -2198,7 +2198,7 @@ -- -   #VUID-VkFramebufferCreateInfo-renderPass-02553# If @renderpass@ is --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @renderPass@ has a --     fragment density map attachment, and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature> --     is not enabled, each element of @pAttachments@ /must/ have been --     created with a @flags@ value including --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'@@ -2206,7 +2206,7 @@ -- -- -   #VUID-VkFramebufferCreateInfo-renderPass-06502# If @renderPass@ was --     created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets> --     other than (0,0), each element of @pAttachments@ /must/ have been --     created with a @flags@ value including --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'.@@ -2300,7 +2300,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     and @renderPass@ was specified with non-zero view masks, each --     element of @pAttachments@ that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or --     greater than the index of the most significant bit set in any of --     those view masks@@ -2311,7 +2311,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     and @renderPass@ was not specified with non-zero view masks, each --     element of @pAttachments@ that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or --     greater than @layers@ --@@ -2320,7 +2320,7 @@ --     include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     an element of @pAttachments@ that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     /must/ have a width at least as large as ⌈@width@ \/ @texelWidth@⌉, --     where @texelWidth@ is the largest value of --     @shadingRateAttachmentTexelSize.width@ in a@@ -2332,7 +2332,7 @@ --     include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     an element of @pAttachments@ that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     /must/ have a height at least as large as ⌈@height@ \/ --     @texelHeight@⌉, where @texelHeight@ is the largest value of --     @shadingRateAttachmentTexelSize.height@ in a@@ -2356,21 +2356,21 @@ -- -- -   #VUID-VkFramebufferCreateInfo-width-00886# @width@ /must/ be less --     than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth> -- -- -   #VUID-VkFramebufferCreateInfo-height-00887# @height@ /must/ be --     greater than @0@ -- -- -   #VUID-VkFramebufferCreateInfo-height-00888# @height@ /must/ be less --     than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight> -- -- -   #VUID-VkFramebufferCreateInfo-layers-00889# @layers@ /must/ be --     greater than @0@ -- -- -   #VUID-VkFramebufferCreateInfo-layers-00890# @layers@ /must/ be less --     than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers> -- -- -   #VUID-VkFramebufferCreateInfo-renderPass-02531# If @renderpass@ is --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @renderPass@ was@@ -2383,7 +2383,7 @@ --     taken from a 3D image /must/ not be a depth\/stencil format -- -- -   #VUID-VkFramebufferCreateInfo-flags-03189# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-imagelessFramebuffer imageless framebuffer>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-imagelessFramebuffer imageless framebuffer> --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT' --@@ -2449,7 +2449,7 @@ --     member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     structure in the @pNext@ chain that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     /must/ be greater than or equal to ⌈@width@ \/ @texelWidth@⌉, where --     @texelWidth@ is the largest value of --     @shadingRateAttachmentTexelSize.width@ in a@@ -2463,7 +2463,7 @@ --     member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     structure in the @pNext@ chain that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     /must/ be greater than or equal to ⌈@height@ \/ @texelHeight@⌉, --     where @texelHeight@ is the largest value of --     @shadingRateAttachmentTexelSize.height@ in a@@ -2477,7 +2477,7 @@ --     @pAttachmentImageInfos@ member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     structure in the @pNext@ chain that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     /must/ be either @1@, or greater than or equal to @layers@ -- -- -   #VUID-VkFramebufferCreateInfo-flags-04587# If @renderpass@ is not@@ -2485,7 +2485,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     and @renderPass@ was specified with non-zero view masks, each --     element of @pAttachments@ that is used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> --     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or --     greater than the index of the most significant bit set in any of --     those view masks@@ -2631,7 +2631,7 @@     flags :: FramebufferCreateFlags   , -- | @renderPass@ is a render pass defining what render passes the     -- framebuffer will be compatible with. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>     -- for details.     renderPass :: RenderPass   , -- | @pAttachments@ is a pointer to an array of
src/Vulkan/Core10/Pipeline.hs view
@@ -166,7 +166,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags)@@ -182,11 +182,11 @@ import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PipelineRenderingCreateInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)@@ -299,15 +299,15 @@ -- -- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-02876# If --     @pipelineCache@ was created with---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', --     host access to @pipelineCache@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> -- -- Note -- -- An implicit cache may be provided by the implementation or a layer. For -- this reason, it is still valid to set--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- on @flags@ for any element of @pCreateInfos@ while passing -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for @pipelineCache@. --@@ -347,7 +347,7 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' -----     -   'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT' -- -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>] --@@ -369,7 +369,7 @@                            Device                         -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',                            -- indicating that pipeline caching is disabled; or the handle of a valid-                           -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+                           -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>                            -- object, in which case use of that cache is enabled for the duration of                            -- the command.                            PipelineCache@@ -377,7 +377,7 @@                            -- structures.                            ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo))                         -> -- | @pAllocator@ controls host memory allocation as described in the-                           -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                           -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                            -- chapter.                            ("allocator" ::: Maybe AllocationCallbacks)                         -> io (Result, ("pipelines" ::: Vector Pipeline))@@ -438,9 +438,9 @@ -- -- -   #VUID-vkCreateComputePipelines-pipelineCache-02873# If --     @pipelineCache@ was created with---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', --     host access to @pipelineCache@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> -- -- == Valid Usage (Implicit) --@@ -477,7 +477,7 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' -----     -   'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT' -- -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>] --@@ -499,7 +499,7 @@                           Device                        -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',                           -- indicating that pipeline caching is disabled; or the handle of a valid-                          -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+                          -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>                           -- object, in which case use of that cache is enabled for the duration of                           -- the command.                           PipelineCache@@ -507,7 +507,7 @@                           -- structures.                           ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo))                        -> -- | @pAllocator@ controls host memory allocation as described in the-                          -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                          -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                           -- chapter.                           ("allocator" ::: Maybe AllocationCallbacks)                        -> io (Result, ("pipelines" ::: Vector Pipeline))@@ -597,7 +597,7 @@                 -> -- | @pipeline@ is the handle of the pipeline to destroy.                    Pipeline                 -> -- | @pAllocator@ controls host memory allocation as described in the-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                    -- chapter.                    ("allocator" ::: Maybe AllocationCallbacks)                 -> io ()@@ -647,7 +647,7 @@ -- -- If a render pass transform is enabled, the values (px,py) and (ox, oy) -- defining the viewport are transformed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform> -- before participating in the viewport transform. -- -- The application /can/ specify a negative term for @height@, which has@@ -657,15 +657,15 @@ -- viewport instead of the upper left corner. Using the negative @height@ -- allows the application to avoid having to negate the y component of the -- @Position@ output from the last--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- -- The width and height of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions> -- /must/ be greater than or equal to the width and height of the largest -- image which /can/ be created and attached to a framebuffer. -- -- The floating-point viewport bounds are represented with an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>. -- -- == Valid Usage --@@ -711,6 +711,7 @@ -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'PipelineViewportStateCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' data Viewport = Viewport   { -- | @x@ and @y@ are the viewport’s upper left corner (x,y).@@ -935,24 +936,24 @@ -- == Valid Usage -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00704# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometry shaders> --     feature is not enabled, @stage@ /must/ not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00705# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders> --     feature is not enabled, @stage@ /must/ not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shader>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader mesh shader> --     feature is not enabled, @stage@ /must/ not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV' -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shader>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader task shader> --     feature is not enabled, @stage@ /must/ not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV' --@@ -1020,13 +1021,13 @@ --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@ -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>, --     and the identified entry point writes to @Layer@ for any primitive, --     it /must/ write the same value to @Layer@ for all vertices of a --     given primitive -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02597# If @stage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>, --     and the identified entry point writes to @ViewportIndex@ for any --     primitive, it /must/ write the same value to @ViewportIndex@ for all --     vertices of a given primitive@@ -1065,74 +1066,74 @@ -- -- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02784# If @flags@ has --     the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' --     flag set, the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02785# If @flags@ has --     the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' --     flag set, the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02754# If a---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' --     structure is included in the @pNext@ chain, @flags@ /must/ not have --     the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' --     flag set -- -- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02755# If a---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' --     structure is included in the @pNext@ chain, the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl> --     feature /must/ be enabled, and @stage@ /must/ be a valid bit --     specified in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages> -- -- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02756# If a---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' --     structure is included in the @pNext@ chain and @stage@ is --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT', --     the local workgroup size of the shader /must/ be less than or equal --     to the product of---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'::@requiredSubgroupSize@+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@ --     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups> -- -- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02757# If a---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' --     structure is included in the @pNext@ chain, and @flags@ has the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' --     flag set, the local workgroup size in the X dimension of the --     pipeline /must/ be a multiple of---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'::@requiredSubgroupSize@+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@ -- -- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02758# If @flags@ has --     both the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' --     and---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' --     flags set, the local workgroup size in the X dimension of the --     pipeline /must/ be a multiple of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize> -- -- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02759# If @flags@ has --     the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' --     flag set and @flags@ does not have the---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' --     flag set and no---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' --     structure is included in the @pNext@ chain, the local workgroup size --     in the X dimension of the pipeline /must/ be a multiple of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize> -- -- -   #VUID-VkPipelineShaderStageCreateInfo-module-04145# The SPIR-V code --     that was used to create @module@ /must/ be valid as described by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification> --     after applying the specializations provided in --     @pSpecializationInfo@, if any, and then converting all --     specialization constants into fixed constants@@ -1144,7 +1145,7 @@ -- -- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-pNext# @pNext@ /must/ be --     @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' -- -- -   #VUID-VkPipelineShaderStageCreateInfo-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -1198,7 +1199,7 @@     name :: ByteString   , -- | @pSpecializationInfo@ is a pointer to a 'SpecializationInfo' structure,     -- as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,     -- or @NULL@.     specializationInfo :: Maybe SpecializationInfo   }@@ -1214,7 +1215,7 @@   getNext PipelineShaderStageCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f     | otherwise = Nothing  instance (Extendss PipelineShaderStageCreateInfo es, PokeChain es) => ToCStruct (PipelineShaderStageCreateInfo es) where@@ -1275,7 +1276,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- == Valid Usage --@@ -1313,11 +1314,11 @@ --     the entry point identified by @stage@ and the rest of the state --     identified by this structure /must/ adhere to the pipeline linking --     rules described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces> --     chapter -- -- -   #VUID-VkComputePipelineCreateInfo-layout-00703# @layout@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent> --     with the layout of the compute shader specified in @stage@ -- -- -   #VUID-VkComputePipelineCreateInfo-layout-01687# The number of@@ -1367,11 +1368,11 @@ -- -- -   #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl> --     feature is not enabled, @flags@ /must/ not include---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     or---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- == Valid Usage (Implicit) --@@ -1382,7 +1383,7 @@ --     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_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',---     'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', --     or --     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI' --@@ -1446,7 +1447,7 @@   extends _ f     | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f     | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f-    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | otherwise = Nothing  instance (Extendss ComputePipelineCreateInfo es, PokeChain es) => ToCStruct (ComputePipelineCreateInfo es) where@@ -1837,7 +1838,7 @@ --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY', --     and @primitiveRestartEnable@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If@@ -1845,11 +1846,11 @@ --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', --     and @primitiveRestartEnable@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometry shaders> --     feature is not enabled, @topology@ /must/ not be any of --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY', --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY',@@ -1858,7 +1859,7 @@ --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY' -- -- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders> --     feature is not enabled, @topology@ /must/ not be --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST' --@@ -1911,11 +1912,11 @@     -- 0xFFFF when @indexType@ is equal to     -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16'. Primitive restart is     -- not allowed for “list” topologies, unless one of the features-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>     -- (for     -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST')     -- or-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>     -- (for all other list topologies) is enabled.     primitiveRestartEnable :: Bool   }@@ -2060,12 +2061,12 @@ -- == Valid Usage -- -- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @viewportCount@ /must/ not be greater than --     @1@ -- -- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @scissorCount@ /must/ not be greater than --     @1@ --@@ -2091,20 +2092,20 @@ -- -- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If the --     graphics pipeline is being created without---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     set then @scissorCount@ and @viewportCount@ /must/ be identical -- -- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the --     graphics pipeline is being created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     set then @viewportCount@ /must/ be @0@, otherwise it /must/ be --     greater than @0@ -- -- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the --     graphics pipeline is being created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     set then @scissorCount@ /must/ be @0@, otherwise it /must/ be --     greater than @0@ --@@ -2160,7 +2161,7 @@     -- is ignored.     viewports :: Vector Viewport   , -- | @scissorCount@ is the number of-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-scissor scissors>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-scissor scissors>     -- and /must/ match the number of viewports.     scissorCount :: Word32   , -- | @pScissors@ is a pointer to an array of@@ -2272,19 +2273,19 @@ -- 'PipelineRasterizationStateCreateInfo' structure. This structure enables -- selecting the rasterization order to use when rendering with the -- corresponding graphics pipeline as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-order Rasterization Order>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order Rasterization Order>. -- -- == Valid Usage -- -- -   #VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depth clamping>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depth clamping> --     feature is not enabled, @depthClampEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fillModeNonSolid non-solid fill modes>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid non-solid fill modes> --     feature is not enabled, @polygonMode@ /must/ be --     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or --     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'@@ -2353,12 +2354,12 @@     flags :: PipelineRasterizationStateCreateFlags   , -- | @depthClampEnable@ controls whether to clamp the fragment’s depth values     -- as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth Depth Test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>.     -- If the pipeline is not created with     -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'     -- present then enabling depth clamp will also disable clipping primitives     -- to the z planes of the frustrum as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.     -- Otherwise depth clipping is controlled by the state set in     -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.     depthClampEnable :: Bool@@ -2482,9 +2483,9 @@ -- = Description -- -- Each bit in the sample mask is associated with a unique--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- as defined for the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>. -- Each bit b for mask word w in the sample mask corresponds to sample -- index i, where i = 32 × w + b. @pSampleMask@ has a length equal to ⌈ -- @rasterizationSamples@ \/ 32 ⌉ words.@@ -2496,13 +2497,13 @@ -- -- -   #VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sampleRateShading sample rate shading>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sample rate shading> --     feature is not enabled, @sampleShadingEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alpha to one>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alpha to one> --     feature is not enabled, @alphaToOneEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --@@ -2565,24 +2566,24 @@     -- specifying the number of samples used in rasterization.     rasterizationSamples :: SampleCountFlagBits   , -- | @sampleShadingEnable@ /can/ be used to enable-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.     sampleShadingEnable :: Bool   , -- | @minSampleShading@ specifies a minimum fraction of sample shading if     -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'.     minSampleShading :: Float   , -- | @pSampleMask@ is a pointer to an array of     -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-samplemask sample mask test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemask sample mask test>.     sampleMask :: Vector SampleMask   , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is     -- generated based on the alpha component of the fragment’s first color     -- output as specified in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-covg Multisample Coverage>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>     -- section.     alphaToCoverageEnable :: Bool   , -- | @alphaToOneEnable@ controls whether the alpha component of the     -- fragment’s first color output is replaced with one as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.     alphaToOneEnable :: Bool   }   deriving (Typeable)@@ -2678,7 +2679,7 @@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending> --     feature is not enabled, @srcColorBlendFactor@ /must/ not be --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',@@ -2687,7 +2688,7 @@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending> --     feature is not enabled, @dstColorBlendFactor@ /must/ not be --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',@@ -2696,7 +2697,7 @@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending> --     feature is not enabled, @srcAlphaBlendFactor@ /must/ not be --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',@@ -2705,7 +2706,7 @@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending> --     feature is not enabled, @dstAlphaBlendFactor@ /must/ not be --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', --     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',@@ -2714,21 +2715,21 @@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406# If --     either of @colorBlendOp@ or @alphaBlendOp@ is an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>, --     then @colorBlendOp@ /must/ equal @alphaBlendOp@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407# --     If --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@ --     is 'Vulkan.Core10.FundamentalTypes.FALSE' and @colorBlendOp@ is an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>, --     then @colorBlendOp@ /must/ be the same for all attachments -- -- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408# --     If --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@ --     is 'Vulkan.Core10.FundamentalTypes.FALSE' and @alphaBlendOp@ is an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>, --     then @alphaBlendOp@ /must/ be the same for all attachments -- -- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409#@@ -2769,7 +2770,7 @@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410# If --     @colorBlendOp@ or @alphaBlendOp@ is an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>, --     then @colorAttachmentCount@ of the subpass this pipeline is compiled --     against /must/ be less than or equal to --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@@@ -2856,7 +2857,7 @@     -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'     -- specifying which of the R, G, B, and\/or A components are enabled for     -- writing, as described for the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.     colorWriteMask :: ColorComponentFlags   }   deriving (Typeable, Eq)@@ -2926,13 +2927,13 @@ -- == Valid Usage -- -- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-independentBlend independent blending>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-independentBlend independent blending> --     feature is not enabled, all elements of @pAttachments@ /must/ be --     identical -- -- -   #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logic operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logic operations> --     feature is not enabled, @logicOpEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --@@ -2942,7 +2943,7 @@ -- -- -   #VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess> --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM' --@@ -2988,7 +2989,7 @@     -- specifying additional color blending information.     flags :: PipelineColorBlendStateCreateFlags   , -- | @logicOpEnable@ controls whether to apply-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.     logicOpEnable :: Bool   , -- | @logicOp@ selects which logical operation to apply.     logicOp :: LogicOp@@ -2999,7 +3000,7 @@   , -- | @blendConstants@ is a pointer to an array of four values used as the R,     -- G, B, and A components of the blend constant that are used in blending,     -- depending on the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.     blendConstants :: (Float, Float, Float, Float)   }   deriving (Typeable)@@ -3277,7 +3278,7 @@ -- -- -   #VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depth bounds testing>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBounds depth bounds testing> --     feature is not enabled, @depthBoundsTestEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --@@ -3294,13 +3295,13 @@ -- -- -   #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess> --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM' -- -- -   #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess> --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM' --@@ -3341,36 +3342,36 @@     -- specifying additional depth\/stencil state information.     flags :: PipelineDepthStencilStateCreateFlags   , -- | @depthTestEnable@ controls whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth depth testing>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth testing>     -- is enabled.     depthTestEnable :: Bool   , -- | @depthWriteEnable@ controls whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-write depth writes>     -- are enabled when @depthTestEnable@ is     -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Depth writes are always disabled     -- when @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.     depthWriteEnable :: Bool   , -- | @depthCompareOp@ is the comparison operator used in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth depth test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>.     depthCompareOp :: CompareOp   , -- | @depthBoundsTestEnable@ controls whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-dbt depth bounds testing>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds testing>     -- is enabled.     depthBoundsTestEnable :: Bool   , -- | @stencilTestEnable@ controls whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil stencil testing>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil testing>     -- is enabled.     stencilTestEnable :: Bool   , -- | @front@ and @back@ control the parameters of the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil stencil test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>.     front :: StencilOpState   , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "back"     back :: StencilOpState   , -- | @minDepthBounds@ is the minimum depth bound used in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-dbt depth bounds test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.     minDepthBounds :: Float   , -- | @maxDepthBounds@ is the maximum depth bound used in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-dbt depth bounds test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.     maxDepthBounds :: Float   }   deriving (Typeable)@@ -3453,18 +3454,18 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- If any shader stage fails to compile, the compile log will be reported -- back to the application, and -- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated. -- -- The state required for a graphics pipeline is divided into--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>. -- -- Vertex input state is defined by: --@@ -3533,20 +3534,20 @@ -- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter -- -- A complete graphics pipeline always includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, -- with other subsets included depending on that state. If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> -- includes a vertex shader, then--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state> -- is included in a complete graphics pipeline. If the value of -- 'PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> -- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state is enabled--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> -- is included in a complete graphics pipeline. -- -- Pipelines /must/ be created with a complete set of pipeline state.@@ -3584,7 +3585,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     the geometric shader stages provided in @pStages@ /must/ be either --     from the mesh shading pipeline (@stage@ is --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'@@ -3599,7 +3600,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     the @stage@ member of one element of @pStages@ /must/ be either --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'@@ -3610,19 +3611,19 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes a tessellation control shader stage, it --     /must/ include a tessellation evaluation shader stage -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes a tessellation evaluation shader stage, it --     /must/ include a tessellation control shader stage -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes a tessellation control shader stage and a --     tessellation evaluation shader stage, @pTessellationState@ /must/ be --     a valid pointer to a valid 'PipelineTessellationStateCreateInfo'@@ -3630,14 +3631,14 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes tessellation shader stages, the shader code --     of at least one stage /must/ contain an @OpExecutionMode@ --     instruction specifying the type of subdivision in the pipeline -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes tessellation shader stages, and the shader --     code of both stages contain an @OpExecutionMode@ instruction --     specifying the type of subdivision in the pipeline, they /must/ both@@ -3645,14 +3646,14 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes tessellation shader stages, the shader code --     of at least one stage /must/ contain an @OpExecutionMode@ --     instruction specifying the output patch size in the pipeline -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes tessellation shader stages, and the shader --     code of both contain an @OpExecutionMode@ instruction specifying the --     out patch size in the pipeline, they /must/ both specify the same@@ -3660,44 +3661,44 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes tessellation shader stages, the @topology@ --     member of @pInputAssembly@ /must/ be --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the pipeline --     is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and the @topology@ member of @pInputAssembly@ is --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', --     @pStages@ /must/ include tessellation shader stages -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes a geometry shader stage, and does not include --     any tessellation shader stages, its shader code /must/ contain an --     @OpExecutionMode@ instruction specifying an input primitive type --     that is---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution compatible>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible> --     with the primitive topology specified in @pInputAssembly@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @pStages@ includes a geometry shader stage, and also includes --     tessellation shader stages, its shader code /must/ contain an --     @OpExecutionMode@ instruction specifying an input primitive type --     that is---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution compatible>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible> --     with the primitive topology that is output by the tessellation --     stages -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     it includes both a fragment shader and a geometry shader, and the --     fragment shader code reads from an input variable that is decorated --     with @PrimitiveId@, then the geometry shader code /must/ write to a@@ -3706,7 +3707,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     it includes a mesh shader and the fragment shader code reads from an --     input variable that is decorated with @PrimitiveId@, then the mesh --     shader code /must/ write to a matching output variable, decorated@@ -3715,37 +3716,37 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06038# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     the fragment shader /must/ not read from any input attachment that --     is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in --     @subpass@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and multiple pre-rasterization shader stages are included in --     @pStages@, the shader code for the entry points identified by those --     @pStages@ and the rest of the state identified by this structure --     /must/ adhere to the pipeline linking rules described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces> --     chapter -- -- -   #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     the fragment shader and last---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> --     and any relevant state /must/ adhere to the pipeline linking rules --     described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces> --     chapter -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06039# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and @subpass@ uses a depth\/stencil attachment in @renderPass@ with --     a read-only layout for the depth aspect in the --     'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the@@ -3755,7 +3756,7 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06040# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and @subpass@ uses a depth\/stencil attachment in @renderPass@ with --     a read-only layout for the stencil aspect in the --     'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the@@ -3766,9 +3767,9 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06041# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, --     then for each color attachment in the subpass, if the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the format of the corresponding attachment description do not --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',@@ -3779,34 +3780,34 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06042# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, --     and the subpass uses color attachments, the @attachmentCount@ member --     of @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@ --     used to create @subpass@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT', --     the @pViewports@ member of @pViewportState@ /must/ be a valid --     pointer to an array of @pViewportState->viewportCount@ valid --     'Viewport' structures -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT', --     the @pScissors@ member of @pViewportState@ /must/ be a valid pointer --     to an array of @pViewportState->scissorCount@ --     'Vulkan.Core10.FundamentalTypes.Rect2D' structures -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the wide lines feature is not enabled, and no element of the --     @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the@@ -3814,29 +3815,29 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If --     the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the @rasterizerDiscardEnable@ member of @pRasterizationState@ is --     'Vulkan.Core10.FundamentalTypes.FALSE', @pViewportState@ /must/ be a --     valid pointer to a valid 'PipelineViewportStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled, @pViewportState@ /must/ be a valid pointer to --     a valid 'PipelineViewportStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If --     the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     @pMultisampleState@ /must/ be a valid pointer to a valid --     'PipelineMultisampleStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06043# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@ --     /must/ be a valid pointer to a valid --     'PipelineDepthStencilStateCreateInfo' structure@@ -3844,14 +3845,14 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06044# If @renderPass@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, --     and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a --     valid pointer to a valid 'PipelineColorBlendStateCreateInfo' --     structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     the depth bias clamping feature is not enabled, no element of the --     @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the@@ -3861,7 +3862,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the @VK_EXT_depth_range_unrestricted@ extension is not enabled --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and@@ -3872,7 +3873,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', --     and the @sampleLocationsEnable@ member of a@@ -3888,7 +3889,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', --     and the @sampleLocationsEnable@ member of a@@ -3904,7 +3905,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', --     and the @sampleLocationsEnable@ member of a@@ -3916,7 +3917,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If --     the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the @sampleLocationsEnable@ member of a --     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' --     structure included in the @pNext@ chain of @pMultisampleState@ is@@ -3925,12 +3926,12 @@ --     @InterpolateAtSample@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-layout-00756# @layout@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent> --     with all shaders specified in @pStages@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00757# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and neither the @VK_AMD_mixed_attachment_samples@ nor the --     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, and if --     @subpass@ uses color and\/or depth\/stencil attachments, then the@@ -3939,7 +3940,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the @VK_AMD_mixed_attachment_samples@ extension is enabled, and --     if @subpass@ uses color and\/or depth\/stencil attachments, then the --     @rasterizationSamples@ member of @pMultisampleState@ /must/ equal@@ -3947,7 +3948,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and --     if @subpass@ has a depth\/stencil attachment and depth test, stencil --     test, or depth bounds test are enabled, then the@@ -3956,7 +3957,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and --     if @subpass@ has any color attachments, then the --     @rasterizationSamples@ member of @pMultisampleState@ /must/ be@@ -3965,7 +3966,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If --     the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the @VK_NV_coverage_reduction_mode@ extension is enabled, the --     coverage reduction mode specified by --     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@,@@ -3976,11 +3977,11 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and @subpass@ does not use any color and\/or depth\/stencil --     attachments, then the @rasterizationSamples@ member of --     @pMultisampleState@ /must/ follow the rules for a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass> -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06046# If @renderPass@ --     is a valid renderPass, @subpass@ /must/ be a valid subpass within@@ -3988,7 +3989,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@ --     is a valid renderPass, the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the @renderPass@ has multiview enabled and @subpass@ has more --     than one bit set in the view mask and @multiviewTessellationShader@ --     is not enabled, then @pStages@ /must/ not include tessellation@@ -3996,21 +3997,21 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@ --     is a valid renderPass, the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the @renderPass@ has multiview enabled and @subpass@ has more --     than one bit set in the view mask and @multiviewGeometryShader@ is --     not enabled, then @pStages@ /must/ not include a geometry shader -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06049# If @renderPass@ --     is a valid renderPass, the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the @renderPass@ has multiview enabled and @subpass@ has more --     than one bit set in the view mask, shaders in the pipeline /must/ --     not write to the @Layer@ built-in output -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06050# If @renderPass@ --     is a valid renderPass and the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the @renderPass@ has multiview enabled, then all shaders /must/ --     not include variables decorated with the @Layer@ built-in decoration --     in their interfaces@@ -4022,7 +4023,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and an input attachment was referenced by an @aspectMask@ at --     @renderPass@ creation time, the fragment shader /must/ only read --     from the aspects that were specified for that input attachment@@ -4034,7 +4035,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV', --     and the @viewportWScalingEnable@ member of a@@ -4051,7 +4052,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV', --     and if @pViewportState->pNext@ chain includes a@@ -4063,7 +4064,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV', --     and if @pViewportState->pNext@ chain includes a@@ -4075,7 +4076,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT', --     and if @pNext@ chain includes a@@ -4087,26 +4088,26 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>, --     @pInputAssemblyState@ /must/ be a valid pointer to a valid --     'PipelineInputAssemblyStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     the @Xfb@ execution mode /can/ be specified by no more than one --     shader stage in @pStages@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and any shader stage in @pStages@ specifies @Xfb@ execution mode it --     /must/ be the last---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and a --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ --     value other than zero is specified, all variables in the output@@ -4117,7 +4118,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ --     is zero, or not specified, all variables in the output interface of@@ -4128,9 +4129,9 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the last---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> --     is a geometry shader, and that geometry shader uses the --     @GeometryStreams@ capability, then --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@@@ -4138,17 +4139,17 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and there are any mesh shader stages in the pipeline there /must/ --     not be any shader stage in the pipeline with a @Xfb@ execution mode -- -- -   #VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766# If --     the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and at least one of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     the @lineRasterizationMode@ member of a --     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT' --     structure included in the @pNext@ chain of @pRasterizationState@ is@@ -4161,7 +4162,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     the @stippledLineEnable@ member of --     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT' --     is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the@@ -4208,73 +4209,73 @@ --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState> --     feature is not enabled, there /must/ be no element of the --     @pDynamicStates@ member of @pDynamicState@ set to---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT',---     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     is included in the @pDynamicStates@ array then @viewportCount@ --     /must/ be zero -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     is included in the @pDynamicStates@ array then @scissorCount@ /must/ --     be zero -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     is included in the @pDynamicStates@ array then --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not --     be present -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     is included in the @pDynamicStates@ array then --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' /must/ not --     be present -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2> --     feature is not enabled, there /must/ be no element of the --     @pDynamicStates@ member of @pDynamicState@ set to---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE', --     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp> --     feature is not enabled, there /must/ be no element of the --     @pDynamicStates@ member of @pDynamicState@ set to --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints> --     feature is not enabled, there /must/ be no element of the --     @pDynamicStates@ member of @pDynamicState@ set to --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'@@ -4282,29 +4283,29 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', --     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', --     then all stages /must/ not specify @Xfb@ execution mode -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl> --     feature is not enabled, @flags@ /must/ not include---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     or---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@,@@ -4313,9 +4314,9 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@,@@ -4324,9 +4325,9 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@,@@ -4335,9 +4336,9 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@,@@ -4346,9 +4347,9 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@,@@ -4357,9 +4358,9 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@,@@ -4368,13 +4369,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ --     and@@ -4383,13 +4384,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0] --     /must/ be@@ -4397,13 +4398,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1] --     /must/ be@@ -4411,11 +4412,11 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503# --     If the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported,---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     is not included in @pDynamicState->pDynamicStates@, and --     'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than --     @1@, entry points specified in @pStages@ /must/ not write to the@@ -4423,29 +4424,29 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504# --     If the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, and entry points specified in @pStages@ --     write to the @ViewportIndex@ built-in, they /must/ not also write to --     the @PrimitiveShadingRateKHR@ built-in -- -- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505# --     If the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, and entry points specified in @pStages@ --     write to the @ViewportMaskNV@ built-in, they /must/ not also write --     to the @PrimitiveShadingRateKHR@ built-in -- -- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506# --     If the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps> --     limit is not supported, and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, elements of@@ -4457,13 +4458,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@ --     /must/ be equal to@@ -4471,13 +4472,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ --     /must/ be equal to@@ -4485,13 +4486,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0] --     /must/ be@@ -4499,13 +4500,13 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1] --     /must/ be@@ -4513,11 +4514,11 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573# --     If the pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps> --     limit is not supported and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' --     is not included in @pDynamicState->pDynamicStates@, elements of@@ -4529,11 +4530,11 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ --     /must/ not be equal to@@ -4545,11 +4546,11 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ --     /must/ not be equal to@@ -4562,19 +4563,19 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the --     pipeline is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState> --     feature is not enabled, there /must/ be no element of the --     @pDynamicStates@ member of @pDynamicState@ set to --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-None-04893# The pipeline /must/ --     be created with a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete set of state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete set of state> -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> --     feature is not enabled, there /must/ be no element of the --     @pDynamicStates@ member of @pDynamicState@ set to --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'@@ -4606,18 +4607,18 @@ --     attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06052# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering> --     feature is not enabled, @renderPass@ /must/ not be --     'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06053# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being --     created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     and either of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::depthAttachmentFormat+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::depthAttachmentFormat --     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::stencilAttachmentFormat+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::stencilAttachmentFormat --     are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', --     @pDepthStencilState@ /must/ be a valid pointer to a valid --     'PipelineDepthStencilStateCreateInfo' structure@@ -4625,82 +4626,82 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06054# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being --     created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::colorAttachmentCount+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::colorAttachmentCount --     is not equal to @0@, @pColorBlendState@ /must/ be a valid pointer to --     a valid 'PipelineColorBlendStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06055# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, --     @pColorBlendState->attachmentCount@ /must/ be equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::colorAttachmentCount+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::colorAttachmentCount -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06056# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     the fragment shader /must/ not read from any input attachment -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06057# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being --     created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     the @viewMask@ member of a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo' --     structure included in the @pNext@ chain is not @0@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader> --     feature is not enabled, then @pStages@ /must/ not include --     tessellation shaders -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06058# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being --     created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     the @viewMask@ member of a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo' --     structure included in the @pNext@ chain is not @0@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader> --     feature is not enabled, then @pStages@ /must/ not include a geometry --     shader -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06059# If @renderPass@ --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being --     created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and the @viewMask@ member of a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo' --     structure included in the @pNext@ chain is not @0@, shaders in --     @pStages@ /must/ not include variables decorated with the @Layer@ --     built-in decoration in their interfaces -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06060# If the pipeline --     is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', --     @pColorBlendState->attachmentCount@ /must/ be equal to the --     @colorAttachmentCount@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo' --     structure included in the @pNext@ chain -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline --     is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state> --     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', --     fragment shaders in @pStages@ /must/ not include the --     @InputAttachment@ capability -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06062# If the pipeline --     is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', for --     each color attachment format defined by the --     @pColorAttachmentFormats@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', --     if its---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     do not contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT', --     then the @blendEnable@ member of the corresponding element of the@@ -4709,7 +4710,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline --     is being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the --     @pNext@ chain includes --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -4717,12 +4718,12 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV', --     the @colorAttachmentCount@ member of that structure /must/ be equal --     to the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06466# If @pStages@ --     includes a fragment shader stage, and the fragment shader code --     enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>, --     the @flags@ member of 'PipelineDepthStencilStateCreateInfo' /must/ --     not include --     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'@@ -4731,7 +4732,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and the @flags@ member of 'PipelineColorBlendStateCreateInfo' --     includes --     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM',@@ -4739,7 +4740,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo' --     includes --     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'@@ -4749,7 +4750,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and the @flags@ member of 'PipelineColorBlendStateCreateInfo' --     includes --     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'@@ -4758,7 +4759,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo' --     includes --     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM',@@ -4767,7 +4768,7 @@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline is --     being created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state> --     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo' --     includes --     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM',@@ -4786,11 +4787,11 @@ --     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', --     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',---     'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', --     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT', --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV', --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', --     or --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV' --@@ -4866,7 +4867,7 @@   , -- | @pInputAssemblyState@ is a pointer to a     -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input     -- assembly behavior, as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing Drawing Commands>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>.     -- It is ignored if the pipeline includes a mesh shader stage.     inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo   , -- | @pTessellationState@ is a pointer to a@@ -4906,7 +4907,7 @@     -- environment in which the pipeline will be used. The pipeline /must/ only     -- be used with a render pass instance compatible with the one provided.     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>     -- for more information.     renderPass :: RenderPass   , -- | @subpass@ is the index of the subpass in the render pass where this@@ -4932,11 +4933,11 @@   extends _ f     | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f     | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f-    | Just Refl <- eqT @e @PipelineRenderingCreateInfoKHR = Just f+    | Just Refl <- eqT @e @PipelineRenderingCreateInfo = Just f     | Just Refl <- eqT @e @PipelineFragmentShadingRateEnumStateCreateInfoNV = Just f     | Just Refl <- eqT @e @PipelineFragmentShadingRateStateCreateInfoKHR = Just f     | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f-    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | Just Refl <- eqT @e @PipelineRepresentativeFragmentTestStateCreateInfoNV = Just f     | Just Refl <- eqT @e @PipelineDiscardRectangleStateCreateInfoEXT = Just f     | Just Refl <- eqT @e @GraphicsPipelineShaderGroupsCreateInfoNV = Just f
src/Vulkan/Core10/PipelineCache.hs view
@@ -112,9 +112,9 @@ -- multiple threads simultaneously. -- -- If @flags@ of @pCreateInfo@ includes--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', -- all commands that modify the returned pipeline cache object /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>. -- -- Note --@@ -166,7 +166,7 @@                        -- containing initial parameters for the pipeline cache object.                        PipelineCacheCreateInfo                     -> -- | @pAllocator@ controls host memory allocation as described in the-                       -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                       -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                        -- chapter.                        ("allocator" ::: Maybe AllocationCallbacks)                     -> io (PipelineCache)@@ -254,7 +254,7 @@                      -> -- | @pipelineCache@ is the handle of the pipeline cache to destroy.                         PipelineCache                      -> -- | @pAllocator@ controls host memory allocation as described in the-                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                         -- chapter.                         ("allocator" ::: Maybe AllocationCallbacks)                      -> io ()@@ -302,7 +302,7 @@ -- -- The initial bytes written to @pData@ /must/ be a header as described in -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-cache-header Pipeline Cache Header>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache-header Pipeline Cache Header> -- section. -- -- If @pDataSize@ is less than what is necessary to store this header,@@ -473,9 +473,9 @@ -- -- -   #VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl> --     feature is not enabled, @flags@ /must/ not include---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/PipelineLayout.hs view
@@ -118,7 +118,7 @@                         -- specifying the state of the pipeline layout object.                         PipelineLayoutCreateInfo                      -> -- | @pAllocator@ controls host memory allocation as described in the-                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                         -- chapter.                         ("allocator" ::: Maybe AllocationCallbacks)                      -> io (PipelineLayout)@@ -175,7 +175,7 @@ -- -   #VUID-vkDestroyPipelineLayout-pipelineLayout-02004# @pipelineLayout@ --     /must/ not have been passed to any @vkCmd*@ command for any command --     buffers that are still in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> --     when 'destroyPipelineLayout' is called -- -- == Valid Usage (Implicit)@@ -212,7 +212,7 @@                       -> -- | @pipelineLayout@ is the pipeline layout to destroy.                          PipelineLayout                       -> -- | @pAllocator@ controls host memory allocation as described in the-                         -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                         -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                          -- chapter.                          ("allocator" ::: Maybe AllocationCallbacks)                       -> io ()@@ -391,10 +391,10 @@ --     number of bindings in descriptor set layouts created without the --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' --     bit set with a @descriptorType@ of---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     accessible to any given shader stage across all elements of --     @pSetLayouts@ /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxPerStageDescriptorInlineUniformBlocks@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxPerStageDescriptorInlineUniformBlocks@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03022# The total --     number of descriptors with a @descriptorType@ of@@ -450,10 +450,10 @@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-02215# The total --     number of bindings with a @descriptorType@ of---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     accessible to any given shader stage across all elements of --     @pSetLayouts@ /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03028# The total --     number of descriptors in descriptor set layouts created without the@@ -537,10 +537,10 @@ --     number of bindings in descriptor set layouts created without the --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' --     bit set with a @descriptorType@ of---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     accessible across all shader stages and across all elements of --     @pSetLayouts@ /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxDescriptorSetInlineUniformBlocks@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxDescriptorSetInlineUniformBlocks@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036# The total number --     of descriptors of the type@@ -606,10 +606,10 @@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-02217# The total --     number of bindings with a @descriptorType@ of---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     accessible across all shader stages and across all elements of --     @pSetLayouts@ /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxDescriptorSetUpdateAfterBindInlineUniformBlocks@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292# Any two --     elements of @pPushConstantRanges@ /must/ not include the same stage@@ -667,7 +667,7 @@ --     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT' --     across all shader stages and across all elements of @pSetLayouts@ --     /must/ be less than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers> -- -- -   #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606# Any element of --     @pSetLayouts@ /must/ not have been created with the
src/Vulkan/Core10/Query.hs view
@@ -144,7 +144,7 @@                    -- containing the number and type of queries to be managed by the pool.                    (QueryPoolCreateInfo a)                 -> -- | @pAllocator@ controls host memory allocation as described in the-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                    -- chapter.                    ("allocator" ::: Maybe AllocationCallbacks)                 -> io (QueryPool)@@ -241,7 +241,7 @@                  -> -- | @queryPool@ is the query pool to destroy.                     QueryPool                  -> -- | @pAllocator@ controls host memory allocation as described in the-                    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                     -- chapter.                     ("allocator" ::: Maybe AllocationCallbacks)                  -> io ()@@ -278,7 +278,7 @@ -- available state, results are written as an array of 32-bit unsigned -- integer values. The behavior when not all queries are available, is -- described--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-wait-bit-not-set below>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-wait-bit-not-set below>. -- -- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not -- set and the result overflows a 32-bit value, the value /may/ either wrap@@ -403,7 +403,7 @@ -- -- -   #VUID-vkGetQueryPoolResults-dataSize-00817# @dataSize@ /must/ be --     large enough to contain the result of each query, as described---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-memorylayout here>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here> -- -- -   #VUID-vkGetQueryPoolResults-queryType-00818# If the @queryType@ used --     to create @queryPool@ was@@ -515,7 +515,7 @@ -- == Valid Usage -- -- -   #VUID-VkQueryPoolCreateInfo-queryType-00791# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries> --     feature is not enabled, @queryType@ /must/ not be --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' --@@ -580,7 +580,7 @@     -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits'     -- specifying which counters will be returned in queries on the new pool,     -- as described below in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats>.     pipelineStatistics :: QueryPipelineStatisticFlags   }   deriving (Typeable)
src/Vulkan/Core10/Queue.hs view
@@ -177,7 +177,7 @@ -- = Description -- -- 'queueSubmit' is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>, -- with each batch defined by an element of @pSubmits@. Batches begin -- execution in the order they appear in @pSubmits@, but /may/ complete out -- of order.@@ -186,39 +186,39 @@ -- additional ordering constraints compared to other submission commands, -- with dependencies involving previous and subsequent queue operations. -- Information about these additional constraints can be found in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores semaphore>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences fence>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences fence> -- sections of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- Details on the interaction of @pWaitDstStageMask@ with synchronization -- are described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation> -- section of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- The order that batches appear in @pSubmits@ is used to determine--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>, -- and thus all the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees> -- that respect it. Other than these implicit ordering guarantees and any--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization explicit synchronization primitives>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization explicit synchronization primitives>, -- these batches /may/ overlap or otherwise execute out of order. -- -- If any command buffer submitted to this queue is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>, -- it is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>. -- Once execution of all submissions of a command buffer complete, it moves -- from the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>, -- back to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>. -- If a command buffer was recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT' -- flag, it instead moves to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>. -- -- If 'queueSubmit' fails, it /may/ return -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or@@ -230,7 +230,7 @@ -- way that the implementation is unable to make that guarantee, the -- implementation /must/ return -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. -- -- == Valid Usage --@@ -257,7 +257,7 @@ --     in any element of the @pWaitDstStageMask@ member of any element of --     @pSubmits@ /must/ be a pipeline stage supported by one of the --     capabilities of @queue@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages> -- -- -   #VUID-vkQueueSubmit-pSignalSemaphores-00067# Each binary semaphore --     element of the @pSignalSemaphores@ member of any element of@@ -281,28 +281,28 @@ -- -   #VUID-vkQueueSubmit-pCommandBuffers-00070# Each element of the --     @pCommandBuffers@ member of each element of @pSubmits@ /must/ be in --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state> -- -- -   #VUID-vkQueueSubmit-pCommandBuffers-00071# If any element of the --     @pCommandBuffers@ member of any element of @pSubmits@ was not --     recorded with the --     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT', --     it /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- -   #VUID-vkQueueSubmit-pCommandBuffers-00072# Any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded> --     into any element of the @pCommandBuffers@ member of any element of --     @pSubmits@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state> -- -- -   #VUID-vkQueueSubmit-pCommandBuffers-00073# If any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded> --     into any element of the @pCommandBuffers@ member of any element of --     @pSubmits@ was not recorded with the --     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT', --     it /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- -   #VUID-vkQueueSubmit-pCommandBuffers-00074# Each element of the --     @pCommandBuffers@ member of each element of @pSubmits@ /must/ have@@ -311,13 +311,13 @@ -- -- -   #VUID-vkQueueSubmit-pSubmits-02207# If any element of --     @pSubmits->pCommandBuffers@ includes a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>, --     there /must/ exist a previously submitted---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation> --     on a queue in the queue family identified by the acquire operation, --     with parameters matching the acquire operation as defined in the --     definition of such---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>, --     and which happens-before the acquire operation -- -- -   #VUID-vkQueueSubmit-pCommandBuffers-03220# If a command recorded@@ -326,7 +326,7 @@ --     @queryPool@ was created with a @queryType@ of --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lock profiling lock> --     /must/ have been held continuously on the --     'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from, --     throughout recording of those command buffers@@ -412,7 +412,7 @@             -> -- | @fence@ is an /optional/ handle to a fence to be signaled once all                -- submitted command buffers have completed execution. If @fence@ is not                -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a-               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.                Fence             -> io () queueSubmit queue submits fence = liftIO . evalContT $ do@@ -458,7 +458,7 @@ -- -- 'queueWaitIdle' is equivalent to having submitted a valid fence to every -- previously executed--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command> -- that accepts a fence, then waiting for all of those fences to signal -- using 'Vulkan.Core10.Fence.waitForFences' with an infinite timeout and -- @waitAll@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'.@@ -599,11 +599,11 @@ -- -- The order that command buffers appear in @pCommandBuffers@ is used to -- determine--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>, -- and thus all the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees> -- that respect it. Other than these implicit ordering guarantees and any--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization explicit synchronization primitives>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization explicit synchronization primitives>, -- these command buffers /may/ overlap or otherwise execute out of order. -- -- == Valid Usage@@ -696,7 +696,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ --     /must/ have a value greater than the current value of the semaphore --     when the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> --     is executed -- -- -   #VUID-VkSubmitInfo-pWaitSemaphores-03243# For each element of@@ -708,7 +708,7 @@ --     /must/ have a value which does not differ from the current value of --     the semaphore or the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- -   #VUID-VkSubmitInfo-pSignalSemaphores-03244# For each element of --     @pSignalSemaphores@ created with a@@ -719,7 +719,7 @@ --     /must/ have a value which does not differ from the current value of --     the semaphore or the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- -   #VUID-VkSubmitInfo-pNext-04120# If the @pNext@ chain of this --     structure does not include a@@ -737,33 +737,33 @@ -- -- -   #VUID-VkSubmitInfo-pCommandBuffers-06193# If @pCommandBuffers@ --     contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>, --     they /must/ be suspended by a render pass instance earlier in --     submission order within @pCommandBuffers@ -- -- -   #VUID-VkSubmitInfo-pCommandBuffers-06014# If @pCommandBuffers@ --     contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, --     they /must/ be resumed by a render pass instance later in submission --     order within @pCommandBuffers@ -- -- -   #VUID-VkSubmitInfo-pCommandBuffers-06015# If @pCommandBuffers@ --     contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, --     there /must/ be no action or synchronization commands between that --     render pass instance and the render pass instance that resumes it -- -- -   #VUID-VkSubmitInfo-pCommandBuffers-06016# If @pCommandBuffers@ --     contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, --     there /must/ be no render pass instances between that render pass --     instance and the render pass instance that resumes it -- -- -   #VUID-VkSubmitInfo-variableSampleLocations-06017# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations> --     limit is not supported, and any element of @pCommandBuffers@ --     contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, --     where a graphics pipeline has been bound, any pipelines bound in the --     render pass instance that resumes it, or any subsequent render pass --     instances that resume from that one and so on, /must/ use the same@@ -833,7 +833,7 @@     -- 'Vulkan.Core10.Handles.Semaphore' handles upon which to wait before the     -- command buffers for this batch begin execution. If semaphores to wait on     -- are provided, they define a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.     waitSemaphores :: Vector Semaphore   , -- | @pWaitDstStageMask@ is a pointer to an array of pipeline stages at which     -- each corresponding semaphore wait will occur.@@ -845,7 +845,7 @@     -- 'Vulkan.Core10.Handles.Semaphore' handles which will be signaled when     -- the command buffers for this batch have completed execution. If     -- semaphores to be signaled are provided, they define a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.     signalSemaphores :: Vector Semaphore   }   deriving (Typeable)
src/Vulkan/Core10/QueueSemaphore.hs view
@@ -123,7 +123,7 @@                    -- containing information about how the semaphore is to be created.                    (SemaphoreCreateInfo a)                 -> -- | @pAllocator@ controls host memory allocation as described in the-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                    -- chapter.                    ("allocator" ::: Maybe AllocationCallbacks)                 -> io (Semaphore)@@ -212,7 +212,7 @@                  -> -- | @semaphore@ is the handle of the semaphore to destroy.                     Semaphore                  -> -- | @pAllocator@ controls host memory allocation as described in the-                    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                     -- chapter.                     ("allocator" ::: Maybe AllocationCallbacks)                  -> io ()
src/Vulkan/Core10/Sampler.hs view
@@ -154,7 +154,7 @@                  -- the state of the sampler object.                  (SamplerCreateInfo a)               -> -- | @pAllocator@ controls host memory allocation as described in the-                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                  -- chapter.                  ("allocator" ::: Maybe AllocationCallbacks)               -> io (Sampler)@@ -243,7 +243,7 @@                -> -- | @sampler@ is the sampler to destroy.                   Sampler                -> -- | @pAllocator@ controls host memory allocation as described in the-                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                   -- chapter.                   ("allocator" ::: Maybe AllocationCallbacks)                -> io ()@@ -285,7 +285,7 @@ -- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST', respectively. -- -- Note that using a @maxLod@ of zero would cause--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-filtering magnification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering magnification> -- to always be performed, and the @magFilter@ to always be used. This is -- valid, just not an exact match for OpenGL behavior. Clamping the maximum -- LOD to 0.25 allows the λ value to be non-zero and minification to be@@ -295,7 +295,7 @@ -- -- The maximum number of sampler objects which /can/ be simultaneously -- created on a device is implementation-dependent and specified by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSamplerAllocationCount maxSamplerAllocationCount>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSamplerAllocationCount maxSamplerAllocationCount> -- member of the 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits' -- structure. --@@ -329,7 +329,7 @@ --     than or equal to @minLod@ -- -- -   #VUID-VkSamplerCreateInfo-anisotropyEnable-01070# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-samplerAnisotropy anisotropic sampling>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerAnisotropy anisotropic sampling> --     feature is not enabled, @anisotropyEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --@@ -340,9 +340,9 @@ --     inclusive -- -- -   #VUID-VkSamplerCreateInfo-minFilter-01645# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     is enabled and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT', --     @minFilter@ and @magFilter@ /must/ be equal to the sampler Y′CBCR@@ -383,7 +383,7 @@ --     'Vulkan.Core10.Enums.BorderColor.BorderColor' value -- -- -   #VUID-VkSamplerCreateInfo-addressModeU-01646# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     is enabled, @addressModeU@, @addressModeV@, and @addressModeW@ --     /must/ be --     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE',@@ -395,11 +395,11 @@ --     /must/ be set to --     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE' --     if---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> --     is enabled -- -- -   #VUID-VkSamplerCreateInfo-addressModeU-01079# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge> --     is not enabled, and if the @VK_KHR_sampler_mirror_clamp_to_edge@ --     extension is not enabled, @addressModeU@, @addressModeV@ and --     @addressModeW@ /must/ not be@@ -463,7 +463,7 @@ --     /must/ be included in the @pNext@ chain -- -- -   #VUID-VkSamplerCreateInfo-customBorderColors-04085# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColors customBorderColors>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColors customBorderColors> --     feature is not enabled, @borderColor@ /must/ not be --     'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT' or --     'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT'@@ -480,7 +480,7 @@ -- -   #VUID-VkSamplerCreateInfo-None-04012# The maximum number of samplers --     with custom border colors which /can/ be simultaneously created on a --     device is implementation-dependent and specified by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers> --     member of the --     'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT' --     structure@@ -572,13 +572,13 @@   , -- | #samplers-mipLodBias# @mipLodBias@ is the bias to be added to mipmap LOD     -- (level-of-detail) calculation and bias provided by image sampling     -- functions in SPIR-V, as described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-level-of-detail-operation Level-of-Detail Operation>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation Level-of-Detail Operation>     -- section.     mipLodBias :: Float   , -- | #samplers-maxAnisotropy# @anisotropyEnable@ is     -- 'Vulkan.Core10.FundamentalTypes.TRUE' to enable anisotropic filtering,     -- as described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-anisotropic-filtering Texel Anisotropic Filtering>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-anisotropic-filtering Texel Anisotropic Filtering>     -- section, or 'Vulkan.Core10.FundamentalTypes.FALSE' otherwise.     anisotropyEnable :: Bool   , -- | @maxAnisotropy@ is the anisotropy value clamp used by the sampler when@@ -596,14 +596,14 @@   , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value     -- specifying the comparison function to apply to fetched data before     -- filtering as described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation Depth Compare Operation>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-depth-compare-operation Depth Compare Operation>     -- section.     compareOp :: CompareOp   , -- | @minLod@ is used to clamp the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-level-of-detail-operation minimum of the computed LOD value>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation minimum of the computed LOD value>.     minLod :: Float   , -- | @maxLod@ is used to clamp the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-level-of-detail-operation maximum of the computed LOD value>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation maximum of the computed LOD value>.     -- To avoid clamping the maximum value, set @maxLod@ to the constant     -- 'Vulkan.Core10.APIConstants.LOD_CLAMP_NONE'.     maxLod :: Float
src/Vulkan/Core10/Shader.hs view
@@ -97,9 +97,9 @@ -- -- Once a shader module has been created, any entry points it contains -- /can/ be used in pipeline shader stages as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-compute Compute Pipelines>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-compute Compute Pipelines> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>. -- -- == Valid Usage (Implicit) --@@ -145,7 +145,7 @@                    -> -- | @pCreateInfo@ is a pointer to a 'ShaderModuleCreateInfo' structure.                       (ShaderModuleCreateInfo a)                    -> -- | @pAllocator@ controls host memory allocation as described in the-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                       -- chapter.                       ("allocator" ::: Maybe AllocationCallbacks)                    -> io (ShaderModule)@@ -238,7 +238,7 @@                     -> -- | @shaderModule@ is the handle of the shader module to destroy.                        ShaderModule                     -> -- | @pAllocator@ controls host memory allocation as described in the-                       -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                       -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                        -- chapter.                        ("allocator" ::: Maybe AllocationCallbacks)                     -> io ()@@ -267,16 +267,16 @@ -- -- -   #VUID-VkShaderModuleCreateInfo-pCode-01377# @pCode@ /must/ point to --     either valid SPIR-V code, formatted and packed as described by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification> --     or valid GLSL code which /must/ be written to the --     @GL_KHR_vulkan_glsl@ extension specification -- -- -   #VUID-VkShaderModuleCreateInfo-pCode-01378# If @pCode@ is a pointer --     to SPIR-V code, that code /must/ adhere to the validation rules --     described by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module> --     section of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> --     appendix -- -- -   #VUID-VkShaderModuleCreateInfo-pCode-01379# If @pCode@ is a pointer@@ -289,27 +289,27 @@ -- -   #VUID-VkShaderModuleCreateInfo-pCode-01090# @pCode@ /must/ not --     declare any capability that is not supported by the API, as --     described by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Capabilities> --     section of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> --     appendix -- -- -   #VUID-VkShaderModuleCreateInfo-pCode-01091# If @pCode@ declares any --     of the capabilities listed in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment> --     appendix, one of the corresponding requirements /must/ be satisfied -- -- -   #VUID-VkShaderModuleCreateInfo-pCode-04146# @pCode@ /must/ not --     declare any SPIR-V extension that is not supported by the API, as --     described by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions Extension>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions Extension> --     section of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> --     appendix -- -- -   #VUID-VkShaderModuleCreateInfo-pCode-04147# If @pCode@ declares any --     of the SPIR-V extensions listed in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment> --     appendix, one of the corresponding requirements /must/ be satisfied -- -- == Valid Usage (Implicit)
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -356,7 +356,7 @@ -- = Description -- -- 'queueBindSparse' is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>, -- with each batch defined by an element of @pBindInfo@ as a -- 'BindSparseInfo' structure. Batches begin execution in the order they -- appear in @pBindInfo@, but /may/ complete out of order.@@ -374,7 +374,7 @@ -- -- Additional information about fence and semaphore operation is described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- == Valid Usage --@@ -402,7 +402,7 @@ --     @pWaitSemaphores@ member of all elements of the @pBindInfo@ --     parameter referring to a binary semaphore /must/ be semaphores that --     are signaled, or have---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations> --     previously submitted for execution -- -- -   #VUID-vkQueueBindSparse-pWaitSemaphores-03245# All elements of the@@ -488,7 +488,7 @@                    ("bindInfo" ::: Vector (SomeStruct BindSparseInfo))                 -> -- | @fence@ is an /optional/ handle to a fence to be signaled. If @fence@ is                    -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.                    Fence                 -> io () queueBindSparse queue bindInfo fence = liftIO . evalContT $ do@@ -752,7 +752,7 @@ --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @memory@ and --     @memoryOffset@ /must/ match the memory requirements of the resource, --     as described in section---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-association>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association> -- -- -   #VUID-VkSparseMemoryBind-memory-01097# If @memory@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @memory@ /must/ not have@@ -882,7 +882,7 @@ -- == Valid Usage -- -- -   #VUID-VkSparseImageMemoryBind-memory-01104# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency> --     feature is not enabled, and if any other resources are bound to --     ranges of @memory@, the range of @memory@ being bound /must/ not --     overlap with those bound ranges@@ -890,11 +890,11 @@ -- -   #VUID-VkSparseImageMemoryBind-memory-01105# @memory@ and --     @memoryOffset@ /must/ match the memory requirements of the calling --     command’s @image@, as described in section---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-association>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association> -- -- -   #VUID-VkSparseImageMemoryBind-subresource-01106# @subresource@ --     /must/ be a valid image subresource for @image@ (see---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views>)+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views>) -- -- -   #VUID-VkSparseImageMemoryBind-offset-01107# @offset.x@ /must/ be a --     multiple of the sparse image block width@@ -1281,7 +1281,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ --     /must/ have a value greater than the current value of the semaphore --     when the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> --     is executed -- -- -   #VUID-VkBindSparseInfo-pWaitSemaphores-03250# For each element of@@ -1293,7 +1293,7 @@ --     /must/ have a value which does not differ from the current value of --     the semaphore or from the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- -   #VUID-VkBindSparseInfo-pSignalSemaphores-03251# For each element of --     @pSignalSemaphores@ created with a@@ -1304,7 +1304,7 @@ --     /must/ have a value which does not differ from the current value of --     the semaphore or from the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- == Valid Usage (Implicit) --@@ -1361,7 +1361,7 @@   , -- | @pWaitSemaphores@ is a pointer to an array of semaphores upon which to     -- wait on before the sparse binding operations for this batch begin     -- execution. If semaphores to wait on are provided, they define a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.     waitSemaphores :: Vector Semaphore   , -- | @pBufferBinds@ is a pointer to an array of 'SparseBufferMemoryBindInfo'     -- structures.@@ -1377,7 +1377,7 @@     -- signaled when the sparse binding operations for this batch have     -- completed execution. If semaphores to be signaled are provided, they     -- define a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.     signalSemaphores :: Vector Semaphore   }   deriving (Typeable)
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -180,7 +180,7 @@ -- specifies an -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AHardwareBuffer' -- object defined by the Android NDK. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers> -- for more details of this handle type. pattern EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = ExternalMemoryHandleTypeFlagBits 0x00000400 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT' is a file descriptor for a
src/Vulkan/Core11/Enums/FenceImportFlagBits.hs view
@@ -31,7 +31,7 @@  -- | 'FENCE_IMPORT_TEMPORARY_BIT' specifies that the fence payload will be -- imported only temporarily, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>, -- regardless of the permanence of @handleType@. pattern FENCE_IMPORT_TEMPORARY_BIT = FenceImportFlagBits 0x00000001 
src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs view
@@ -31,7 +31,7 @@ -- -- The peer memory features of a memory heap also apply to any accesses -- that /may/ be performed during--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>. -- -- 'PEER_MEMORY_FEATURE_COPY_DST_BIT' /must/ be supported for all host -- local heaps and for at least one device-local memory heap.
src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs view
@@ -30,17 +30,17 @@ -- -   'SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709' specifies the color model --     conversion from Y′CBCR to R′G′B′ defined in BT.709 and described in --     the “BT.709 Y′CBCR conversion” section of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- -   'SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601' specifies the color model --     conversion from Y′CBCR to R′G′B′ defined in BT.601 and described in --     the “BT.601 Y′CBCR conversion” section of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- -   'SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020' specifies the color --     model conversion from Y′CBCR to R′G′B′ defined in BT.2020 and --     described in the “BT.2020 Y′CBCR conversion” section of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- In the @VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_*@ color models, for the -- input to the sampler Y′CBCR range expansion and model conversion:
src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs view
@@ -19,9 +19,9 @@ -- = Description -- -- The formulae for these conversions is described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-rangeexpand Sampler Y′CBCR Range Expansion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-rangeexpand Sampler Y′CBCR Range Expansion> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures Image Operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations> -- chapter. -- -- No range modification takes place if @ycbcrModel@ is
src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs view
@@ -35,7 +35,7 @@  -- | 'SEMAPHORE_IMPORT_TEMPORARY_BIT' specifies that the semaphore payload -- will be imported only temporarily, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, -- regardless of the permanence of @handleType@. pattern SEMAPHORE_IMPORT_TEMPORARY_BIT = SemaphoreImportFlagBits 0x00000001 
src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs view
@@ -31,11 +31,11 @@  -- | 'TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT' specifies that the origin of the -- domain space is in the upper left corner, as shown in figure--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#img-tessellation-topology-ul>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ul>. pattern TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = TessellationDomainOrigin 0 -- | 'TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT' specifies that the origin of the -- domain space is in the lower left corner, as shown in figure--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#img-tessellation-topology-ll>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ll>. pattern TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = TessellationDomainOrigin 1 {-# complete TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,              TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT :: TessellationDomainOrigin #-}
src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs view
@@ -279,7 +279,7 @@     -- have undefined values written, reads and queries will return undefined     -- values. If this limit is 'Vulkan.Core10.FundamentalTypes.FALSE',     -- applications /must/ not perform these operations. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-access-rules>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-access-rules>     -- for more information.     protectedNoFault :: Bool }   deriving (Typeable, Eq)
src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs view
@@ -49,7 +49,7 @@ -- If @supportedOperations@ includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad ,> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow> -- is enabled, @subgroupSize@ /must/ be greater than or equal to 4. -- -- == Valid Usage (Implicit)@@ -72,9 +72,9 @@   , -- | #limits-subgroup-supportedStages# @supportedStages@ is a bitfield of     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing     -- the shader stages that-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>     -- with-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>     -- are supported in. @supportedStages@ will have the     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit     -- set if any of the physical device’s queues support@@ -83,9 +83,9 @@   , -- | #limits-subgroupSupportedOperations# @supportedOperations@ is a bitmask     -- of 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits'     -- specifying the sets of-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>     -- with-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>     -- supported on this device. @supportedOperations@ will have the     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_BASIC_BIT'     -- bit set if any of the physical device’s queues support@@ -94,7 +94,7 @@     supportedOperations :: SubgroupFeatureFlags   , -- | #limits-subgroup-quadOperationsInAllStages# @quadOperationsInAllStages@     -- is a boolean specifying whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-quad-operations quad group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations>     -- are available in all stages, or are restricted to fragment and compute     -- stages.     quadOperationsInAllStages :: Bool
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -144,7 +144,7 @@                                   -- or 'updateDescriptorSetWithTemplate'.                                   DescriptorUpdateTemplateCreateInfo                                -> -- | @pAllocator@ controls host memory allocation as described in the-                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io (DescriptorUpdateTemplate)@@ -238,7 +238,7 @@                                 -> -- | @descriptorUpdateTemplate@ is the descriptor update template to destroy.                                    DescriptorUpdateTemplate                                 -> -- | @pAllocator@ controls host memory allocation as described in the-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                    -- chapter.                                    ("allocator" ::: Maybe AllocationCallbacks)                                 -> io ()@@ -421,16 +421,16 @@ --     implicitly specified when using a descriptor update template to --     update descriptors, and all applicable consecutive bindings, as --     described by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- -   #VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226# If --     @descriptor@ type is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @dstArrayElement@ /must/ be an integer multiple of @4@ -- -- -   #VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227# If --     @descriptor@ type is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', --     @descriptorCount@ /must/ be an integer multiple of @4@ -- -- == Valid Usage (Implicit)@@ -451,7 +451,7 @@   , -- | @dstArrayElement@ is the starting element in the array belonging to     -- @dstBinding@. If the descriptor binding identified by @dstBinding@ has a     -- descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @dstArrayElement@ specifies the starting byte offset to update.     dstArrayElement :: Word32   , -- | @descriptorCount@ is the number of descriptors to update. If@@ -460,7 +460,7 @@     -- manner similar to 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet'     -- above. If the descriptor binding identified by @dstBinding@ has a     -- descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @descriptorCount@ specifies the number of bytes to update and the     -- remaining array elements in the destination binding refer to the     -- remaining number of bytes in it.@@ -481,7 +481,7 @@     --     -- The stride is useful in case the bindings are stored in structs along     -- with other data. If @descriptorType@ is-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then the value of @stride@ is ignored and the stride is assumed to be     -- @1@, i.e. the descriptor update information for them is always specified     -- as a contiguous range.
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -286,7 +286,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDispatchBase-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -342,7 +342,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDispatchBase-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -350,7 +350,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDispatchBase-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -800,12 +800,12 @@ -- -   #VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168# The sum of the --     @offset.x@ and @extent.width@ members of any element of --     @pDeviceRenderAreas@ /must/ be less than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth> -- -- -   #VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169# The sum of the --     @offset.y@ and @extent.height@ members of any element of --     @pDeviceRenderAreas@ /must/ be less than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight> -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -525,11 +525,11 @@ -- where such a restriction exists as defined in the compatibility table -- for the particular object type: ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-memory-handle-types-compatibility External memory handle types compatibility>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility External memory handle types compatibility> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility External semaphore handle types compatibility>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility External semaphore handle types compatibility> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility External fence handle types compatibility>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility External fence handle types compatibility> -- -- If @deviceLUIDValid@ is 'Vulkan.Core10.FundamentalTypes.FALSE', the -- values of @deviceLUID@ and @deviceNodeMask@ are undefined. If
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs view
@@ -476,7 +476,9 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>, -- 'getBufferMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceBufferMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV', -- 'getImageMemoryRequirements2',@@ -544,6 +546,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>, -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR', -- 'getImageSparseMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR'
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -72,7 +72,7 @@ import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.Format (Format(..)) import Vulkan.Core10.DeviceInitialization (FormatProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_format_feature_flags2 (FormatProperties3KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo) import Vulkan.Core10.DeviceInitialization (ImageFormatProperties)@@ -127,7 +127,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)@@ -148,25 +148,25 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)@@ -182,7 +182,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)@@ -190,7 +190,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)@@ -218,30 +218,30 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT)@@ -255,17 +255,19 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (QueueFamilyGlobalPriorityPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR) import Vulkan.Core10.DeviceInitialization (QueueFamilyProperties) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..))@@ -722,44 +724,45 @@     | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceSynchronization2FeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f-    | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = Just f-    | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVulkan13Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan11Features = Just f-    | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSeparateDepthStencilLayoutsFeatures = Just f@@ -772,7 +775,7 @@     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = Just f-    | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceImagelessFramebufferFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeatures = Just f@@ -809,12 +812,12 @@     | Just Refl <- eqT @e @PhysicalDeviceTimelineSemaphoreFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceMemoryReportFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f-    | Just Refl <- eqT @e @PhysicalDeviceMaintenance4FeaturesKHR = Just f-    | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBlendOperationAdvancedFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceProtectedMemoryFeatures = Just f@@ -825,7 +828,7 @@     | Just Refl <- eqT @e @PhysicalDevicePresentIdFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f-    | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f     | otherwise = Nothing @@ -895,10 +898,10 @@ --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV', --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties', --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',---     'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', --     'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV', --     'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT', --     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',@@ -917,18 +920,19 @@ --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties', --     'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', --     'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',---     'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductPropertiesKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', --     'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV', --     'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', --     'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',---     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlPropertiesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties', --     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI',---     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+--     'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties', --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', --     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',---     'Vulkan.Core12.PhysicalDeviceVulkan11Properties', or---     'Vulkan.Core12.PhysicalDeviceVulkan12Properties'+--     'Vulkan.Core12.PhysicalDeviceVulkan11Properties',+--     'Vulkan.Core12.PhysicalDeviceVulkan12Properties', or+--     'Vulkan.Core13.PhysicalDeviceVulkan13Properties' -- -- -   #VUID-VkPhysicalDeviceProperties2-sType-unique# The @sType@ value of --     each struct in the @pNext@ chain /must/ be unique@@ -963,19 +967,20 @@   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b   extends _ f     | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductPropertiesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductProperties = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2PropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVulkan13Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan11Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingPropertiesHUAWEI = Just f-    | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlPropertiesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlProperties = Just f+    | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentProperties = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderSMBuiltinsPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryPropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixPropertiesNV = Just f@@ -998,9 +1003,9 @@     | Just Refl <- eqT @e @PhysicalDeviceConservativeRasterizationPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryHostPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFloatControlsProperties = Just f-    | Just Refl <- eqT @e @PhysicalDeviceMaintenance4PropertiesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceMaintenance3Properties = Just f-    | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockProperties = Just f     | Just Refl <- eqT @e @PhysicalDeviceBlendOperationAdvancedPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSampleLocationsPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSamplerFilterMinmaxProperties = Just f@@ -1060,7 +1065,7 @@ --     @NULL@ or a pointer to a valid instance of --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT', --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',---     'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.FormatProperties3', --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>, --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,@@ -1100,7 +1105,7 @@   extends :: forall e b proxy. Typeable e => proxy e -> (Extends FormatProperties2 e => b) -> Maybe b   extends _ f     | Just Refl <- eqT @e @DrmFormatModifierPropertiesList2EXT = Just f-    | Just Refl <- eqT @e @FormatProperties3KHR = Just f+    | Just Refl <- eqT @e @FormatProperties3 = Just f     | Just Refl <- eqT @e @DrmFormatModifierPropertiesListEXT = Just f     | otherwise = Nothing @@ -1424,7 +1429,7 @@ --     either @NULL@ or a pointer to a valid instance of --     'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV', --     'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',---     'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT',+--     'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR', --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>, --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>@@ -1462,7 +1467,7 @@   extends _ f     | Just Refl <- eqT @e @QueueFamilyCheckpointProperties2NV = Just f     | Just Refl <- eqT @e @QueueFamilyCheckpointPropertiesNV = Just f-    | Just Refl <- eqT @e @QueueFamilyGlobalPriorityPropertiesEXT = Just f+    | Just Refl <- eqT @e @QueueFamilyGlobalPriorityPropertiesKHR = Just f     | otherwise = Nothing  instance (Extendss QueueFamilyProperties2 es, PokeChain es) => ToCStruct (QueueFamilyProperties2 es) where
src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs view
@@ -66,7 +66,7 @@ -- -   #extension-features-multiview-gs# @multiviewGeometryShader@ --     specifies whether the implementation supports multiview rendering --     within a render pass, with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry geometry shaders>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry geometry shaders>. --     If this feature is not enabled, then a pipeline compiled against a --     subpass with a non-zero view mask /must/ not include a geometry --     shader.@@ -74,7 +74,7 @@ -- -   #extension-features-multiview-tess# @multiviewTessellationShader@ --     specifies whether the implementation supports multiview rendering --     within a render pass, with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation tessellation shaders>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation tessellation shaders>. --     If this feature is not enabled, then a pipeline compiled against a --     subpass with a non-zero view mask /must/ not include any --     tessellation shaders.@@ -257,9 +257,9 @@ -- additional broadcasting. -- -- Some implementations /may/ not support multiview in conjunction with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview-gs geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs geometry shaders> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview-tess tessellation shaders>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess tessellation shaders>. -- -- When multiview is enabled, the -- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT' bit
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -128,15 +128,15 @@ -- -- The interpretation of the configured sampler Y′CBCR conversion is -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion> -- in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures Image Operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations> -- chapter. -- -- == Valid Usage -- -- -   #VUID-vkCreateSamplerYcbcrConversion-None-01648# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-samplerYcbcrConversion sampler Y′CBCR conversion feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerYcbcrConversion sampler Y′CBCR conversion feature> --     /must/ be enabled -- -- == Valid Usage (Implicit)@@ -185,7 +185,7 @@                                 -- structure specifying the requested sampler Y′CBCR conversion.                                 (SamplerYcbcrConversionCreateInfo a)                              -> -- | @pAllocator@ controls host memory allocation as described in the-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (SamplerYcbcrConversion)@@ -263,7 +263,7 @@                               -> -- | @ycbcrConversion@ is the conversion to destroy.                                  SamplerYcbcrConversion                               -> -- | @pAllocator@ controls host memory allocation as described in the-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io ()@@ -357,7 +357,7 @@ -- conversion object represents an /external format conversion/, and -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. Such -- conversions /must/ only be used to sample image views with a matching--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>. -- When creating an external format conversion, the value of @components@ -- is ignored. --@@ -373,58 +373,58 @@ --     @UNORM@ format) -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-format-01650# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the sampler Y′CBCR conversion /must/ support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' --     or --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT', --     @xChromaOffset@ and @yChromaOffset@ /must/ not be --     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN' if --     the corresponding components are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled> -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT', --     @xChromaOffset@ and @yChromaOffset@ /must/ not be --     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT' if the --     corresponding components are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled> -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-components-02581# If the --     format has a @_422@ or @_420@ suffix, then @components.g@ /must/ be --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-components-02582# If the --     format has a @_422@ or @_420@ suffix, then @components.a@ /must/ be --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>, --     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE', or --     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ZERO' -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-components-02583# If the --     format has a @_422@ or @_420@ suffix, then @components.r@ /must/ be --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> --     or 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_B' -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-components-02584# If the --     format has a @_422@ or @_420@ suffix, then @components.b@ /must/ be --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> --     or 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_R' -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-components-02585# If the --     format has a @_422@ or @_420@ suffix, and if either @components.r@ --     or @components.b@ is the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>, --     both values /must/ be the identity swizzle -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655# If@@ -437,7 +437,7 @@ --     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE', and --     /must/ not correspond to a component containing zero or one as a --     consequence of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba conversion to RGBA>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba conversion to RGBA> -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748# If --     @ycbcrRange@ is@@ -448,14 +448,14 @@ -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT' --     @forceExplicitReconstruction@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     of the sampler Y′CBCR conversion do not support --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT', --     @chromaFilter@ /must/ not be@@ -506,9 +506,9 @@ -- samples are reconstructed to luma component resolution using -- nearest-neighbour sampling. Otherwise, chroma samples are reconstructed -- using interpolation. More details can be found in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion> -- in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures Image Operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations> -- chapter. -- -- = See Also@@ -541,13 +541,13 @@     -- range expansion and color model conversion.     components :: ComponentMapping   , -- | @xChromaOffset@ describes the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>     -- associated with downsampled chroma components in the x dimension.     -- @xChromaOffset@ has no effect for formats in which chroma components are     -- not downsampled horizontally.     xChromaOffset :: ChromaLocation   , -- | @yChromaOffset@ describes the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>     -- associated with downsampled chroma components in the y dimension.     -- @yChromaOffset@ has no effect for formats in which the chroma components     -- are not downsampled vertically.@@ -836,7 +836,7 @@ data PhysicalDeviceSamplerYcbcrConversionFeatures = PhysicalDeviceSamplerYcbcrConversionFeatures   { -- | #extension-features-samplerYcbcrConversion# @samplerYcbcrConversion@     -- specifies whether the implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.     -- If @samplerYcbcrConversion@ is 'Vulkan.Core10.FundamentalTypes.FALSE',     -- sampler Y′CBCR conversion is not supported, and samplers using sampler     -- Y′CBCR conversion /must/ not be used.
src/Vulkan/Core12.hs view
@@ -358,9 +358,9 @@   , -- | #limits-subgroupSupportedStages# @subgroupSupportedStages@ is a bitfield     -- of 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits'     -- describing the shader stages that-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>     -- with-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>     -- are supported in. @subgroupSupportedStages@ will have the     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit     -- set if any of the physical device’s queues support@@ -369,9 +369,9 @@   , -- | @subgroupSupportedOperations@ is a bitmask of     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits'     -- specifying the sets of-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>     -- with-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>     -- supported on this device. @subgroupSupportedOperations@ will have the     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_BASIC_BIT'     -- bit set if any of the physical device’s queues support@@ -380,7 +380,7 @@     subgroupSupportedOperations :: SubgroupFeatureFlags   , -- | #limits-subgroupQuadOperationsInAllStages#     -- @subgroupQuadOperationsInAllStages@ is a boolean specifying whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-quad-operations quad group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations>     -- are available in all stages, or are restricted to fragment and compute     -- stages.     subgroupQuadOperationsInAllStages :: Bool@@ -600,7 +600,7 @@ -- -   #features-descriptorIndexing# @descriptorIndexing@ indicates whether --     the implementation supports the minimum set of descriptor indexing --     features as described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-requirements Feature Requirements>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements> --     section. Enabling the @descriptorIndexing@ member when --     'Vulkan.Core10.Device.createDevice' is called does not imply the --     other minimum descriptor indexing features are also enabled. Those@@ -805,7 +805,7 @@ -- -   #features-samplerFilterMinmax# @samplerFilterMinmax@ indicates --     whether the implementation supports a minimum set of required --     formats supporting min\/max filtering as defined by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-filterMinmaxSingleComponentFormats-minimum-requirements filterMinmaxSingleComponentFormats>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-filterMinmaxSingleComponentFormats-minimum-requirements filterMinmaxSingleComponentFormats> --     property minimum requirements. If this feature is not enabled, then --     no 'Vulkan.Core10.Sampler.SamplerCreateInfo' @pNext@ chain can --     include a
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -86,11 +86,13 @@ -- 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_EXT'--- where @descriptorCount@ specifies the upper bound on the byte size of--- the binding, thus it counts against the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize>--- limit instead.+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'.+-- In this case, @descriptorCount@ specifies the upper bound on the byte+-- size of the binding; thus it counts against the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize>+-- limits instead. pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT   = DescriptorBindingFlagBits 0x00000008  conNameDescriptorBindingFlagBits :: String
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -21,6 +21,7 @@                                               , DRIVER_ID_MESA_V3DV                                               , DRIVER_ID_MESA_PANVK                                               , DRIVER_ID_SAMSUNG_PROPRIETARY+                                              , DRIVER_ID_MESA_VENUS                                               , ..                                               )) where @@ -102,6 +103,8 @@ pattern DRIVER_ID_MESA_PANVK                = DriverId 20 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_SAMSUNG_PROPRIETARY" pattern DRIVER_ID_SAMSUNG_PROPRIETARY       = DriverId 21+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_VENUS"+pattern DRIVER_ID_MESA_VENUS                = DriverId 22 {-# complete DRIVER_ID_AMD_PROPRIETARY,              DRIVER_ID_AMD_OPEN_SOURCE,              DRIVER_ID_MESA_RADV,@@ -122,7 +125,8 @@              DRIVER_ID_MESA_TURNIP,              DRIVER_ID_MESA_V3DV,              DRIVER_ID_MESA_PANVK,-             DRIVER_ID_SAMSUNG_PROPRIETARY :: DriverId #-}+             DRIVER_ID_SAMSUNG_PROPRIETARY,+             DRIVER_ID_MESA_VENUS :: DriverId #-}  conNameDriverId :: String conNameDriverId = "DriverId"@@ -153,6 +157,7 @@   , (DRIVER_ID_MESA_V3DV                , "MESA_V3DV")   , (DRIVER_ID_MESA_PANVK               , "MESA_PANVK")   , (DRIVER_ID_SAMSUNG_PROPRIETARY      , "SAMSUNG_PROPRIETARY")+  , (DRIVER_ID_MESA_VENUS               , "MESA_VENUS")   ]  instance Show DriverId where
src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs view
@@ -30,7 +30,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2 VK_VERSION_1_2>,--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'ResolveModeFlags', -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve' newtype ResolveModeFlagBits = ResolveModeFlagBits Flags
src/Vulkan/Core12/Enums/SamplerReductionMode.hs view
@@ -28,7 +28,7 @@ -- | 'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE' specifies that texel values -- are combined by computing a weighted average of values in the footprint, -- using weights as specified in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-unnormalized-to-integer the image operations chapter>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer the image operations chapter>. pattern SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = SamplerReductionMode 0 -- | 'SAMPLER_REDUCTION_MODE_MIN' specifies that texel values are combined by -- taking the component-wise minimum of values in the footprint with
src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs view
@@ -458,7 +458,7 @@   , -- | #extension-limits-robustBufferAccessUpdateAfterBind#     -- @robustBufferAccessUpdateAfterBind@ is a boolean value indicating     -- whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>     -- /can/ be enabled in a device simultaneously with     -- @descriptorBindingUniformBufferUpdateAfterBind@,     -- @descriptorBindingStorageBufferUpdateAfterBind@,@@ -473,7 +473,7 @@     -- calculations for image operations have well-defined results when the     -- image and\/or sampler objects used for the instruction are not uniform     -- within a quad. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>.     quadDivergentImplicitLod :: Bool   , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindSamplers#     -- @maxPerStageDescriptorUpdateAfterBindSamplers@ is similar to@@ -806,9 +806,9 @@ -- -- -   #VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211# --     If---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT'::@descriptorBindingInlineUniformBlockUpdateAfterBind@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures'::@descriptorBindingInlineUniformBlockUpdateAfterBind@ --     is not enabled, all bindings with descriptor type---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     /must/ not use --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' --@@ -927,7 +927,7 @@ -- variable count descriptor binding in the corresponding descriptor set -- layout. If the variable count descriptor binding in the corresponding -- descriptor set layout has a descriptor type of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @pDescriptorCounts@[i] specifies the binding’s capacity in bytes. -- If -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo'::@pSetLayouts@[i]@@ -1042,7 +1042,7 @@     -- supported in the highest numbered binding of the layout, if that binding     -- is variable-sized. If the highest numbered binding of the layout has a     -- descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'     -- then @maxVariableDescriptorCount@ indicates the maximum byte size     -- supported for the binding, if that binding is variable-sized.     maxVariableDescriptorCount :: Word32 }
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -67,7 +67,7 @@ -- == Valid Usage -- -- -   #VUID-vkResetQueryPool-None-02665# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset> --     feature /must/ be enabled -- -- -   #VUID-vkResetQueryPool-firstQuery-02666# @firstQuery@ /must/ be less
src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs view
@@ -65,7 +65,7 @@ -- 'Vulkan.Core10.FundamentalTypes.FALSE' the component mapping of the -- image view used with min\/max filtering /must/ have been created with -- the @r@ component set to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>. -- Only the @r@ component of the sampled image value is defined and the -- other component values are undefined. If -- @filterMinmaxImageComponentMapping@ is
src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs view
@@ -57,7 +57,7 @@   { -- | #extension-features-scalarBlockLayout# @scalarBlockLayout@ indicates     -- that the implementation supports the layout of resource blocks in     -- shaders using-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>.     scalarBlockLayout :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs view
@@ -96,12 +96,12 @@ -- == Valid Usage -- -- -   #VUID-vkGetBufferOpaqueCaptureAddress-None-03326# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> --     feature /must/ be enabled -- -- -   #VUID-vkGetBufferOpaqueCaptureAddress-device-03327# If @device@ was --     created with multiple physical devices, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -169,16 +169,16 @@ -- == Valid Usage -- -- -   #VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressEXT ::bufferDeviceAddress>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressEXT ::bufferDeviceAddress> --     feature /must/ be enabled -- -- -   #VUID-vkGetBufferDeviceAddress-device-03325# If @device@ was created --     with multiple physical devices, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -240,12 +240,12 @@ -- == Valid Usage -- -- -   #VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> --     feature /must/ be enabled -- -- -   #VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335# If --     @device@ was created with multiple physical devices, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -92,7 +92,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (MemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)@@ -183,7 +183,7 @@                      -- describing the parameters of the render pass.                      (RenderPassCreateInfo2 a)                   -> -- | @pAllocator@ controls host memory allocation as described in the-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                      -- chapter.                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io (RenderPass)@@ -562,7 +562,7 @@ -- -- -   #VUID-vkCmdEndRenderPass2-None-06171# The current render pass --     instance /must/ not have been begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- -- == Valid Usage (Implicit) --@@ -638,7 +638,7 @@ -- those parameters. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is enabled, and @format@ is a depth\/stencil format, -- @initialLayout@ and @finalLayout@ /can/ be set to a layout that only -- specifies the layout of the depth aspect.@@ -696,7 +696,7 @@ -- -- -   #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> --     feature is not enabled, @initialLayout@ /must/ not be --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',@@ -706,7 +706,7 @@ -- -- -   #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03299# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> --     feature is not enabled, @finalLayout@ /must/ not be --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',@@ -966,7 +966,7 @@ -- other than an input attachment reference. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is enabled, and @attachment@ has a depth\/stencil format, -- @layout@ /can/ be set to a layout that only specifies the layout of the -- depth aspect.@@ -988,7 +988,7 @@ -- -- -   #VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> --     feature is not enabled, and @attachment@ is not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', @layout@ /must/ not --     be@@ -1200,7 +1200,7 @@ --     in @pInputAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain at least --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --     or@@ -1210,7 +1210,7 @@ --     in @pColorAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1218,7 +1218,7 @@ --     attachments in @pResolveAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1226,42 +1226,42 @@ --     @pDepthStencilAttachment@ is not @NULL@ and the attachment is not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have --     an image format whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- -   #VUID-VkSubpassDescription2-linearColorAttachment-06499# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled and the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all --     attachments in @pInputAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- -   #VUID-VkSubpassDescription2-linearColorAttachment-06500# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled and the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all --     attachments in @pColorAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- -   #VUID-VkSubpassDescription2-linearColorAttachment-06501# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> --     feature is enabled and the image is created with --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all --     attachments in @pResolveAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --     formats whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- -   #VUID-VkSubpassDescription2-pColorAttachments-03070# If the --     @VK_AMD_mixed_attachment_samples@ extension is enabled, all@@ -1294,7 +1294,7 @@ -- -- -   #VUID-VkSubpassDescription2-None-04439# Attachments /must/ follow --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements> --     based on the type of attachment it is being used as -- -- -   #VUID-VkSubpassDescription2-flags-03076# If @flags@ includes@@ -1535,12 +1535,12 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewOffsets@ -- has on each corresponding subpass dependency. ----- If a 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR'--- structure is included in the @pNext@ chain, @srcStageMask@,--- @dstStageMask@, @srcAccessMask@, and @dstAccessMask@ parameters are--- ignored. The synchronization and access scopes instead are defined by--- the parameters of--- 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR'.+-- If a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2' is+-- included in the @pNext@ chain, @srcStageMask@, @dstStageMask@,+-- @srcAccessMask@, and @dstAccessMask@ parameters are ignored. The+-- synchronization and access scopes instead are defined by the parameters+-- of 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2'. -- -- == Valid Usage --@@ -1648,24 +1648,24 @@ -- -   #VUID-VkSubpassDependency2-srcSubpass-03087# If @srcSubpass@ is --     equal to @dstSubpass@ and not all of the stages in @srcStageMask@ --     and @dstStageMask@ are---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>, --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest> --     pipeline stage in @srcStageMask@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier> --     than or equal to the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest> --     pipeline stage in @dstStageMask@ -- -- -   #VUID-VkSubpassDependency2-srcAccessMask-03088# Any access flag --     included in @srcAccessMask@ /must/ be supported by one of the --     pipeline stages in @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- -   #VUID-VkSubpassDependency2-dstAccessMask-03089# Any access flag --     included in @dstAccessMask@ /must/ be supported by one of the --     pipeline stages in @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- -   #VUID-VkSubpassDependency2-dependencyFlags-03090# If --     @dependencyFlags@ includes@@ -1681,7 +1681,7 @@ -- -- -   #VUID-VkSubpassDependency2-srcSubpass-02245# If @srcSubpass@ equals --     @dstSubpass@, and @srcStageMask@ and @dstStageMask@ both include a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>, --     then @dependencyFlags@ /must/ include --     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' --@@ -1700,7 +1700,7 @@ -- -- -   #VUID-VkSubpassDependency2-pNext-pNext# @pNext@ /must/ be @NULL@ or --     a pointer to a valid instance of---     'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2' -- -- -   #VUID-VkSubpassDependency2-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -1748,20 +1748,20 @@   , -- | @srcStageMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'     -- specifying the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.     srcStageMask :: PipelineStageFlags   , -- | @dstStageMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'     -- specifying the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>     dstStageMask :: PipelineStageFlags   , -- | @srcAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.     srcAccessMask :: AccessFlags   , -- | @dstAccessMask@ is a bitmask of     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.     dstAccessMask :: AccessFlags   , -- | @dependencyFlags@ is a bitmask of     -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits'.@@ -1782,7 +1782,7 @@   getNext SubpassDependency2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassDependency2 e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @MemoryBarrier2KHR = Just f+    | Just Refl <- eqT @e @MemoryBarrier2 = Just f     | otherwise = Nothing  instance (Extendss SubpassDependency2 es, PokeChain es) => ToCStruct (SubpassDependency2 es) where@@ -1926,7 +1926,7 @@ --     'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags --     included in the @srcStageMask@ member of that dependency /must/ be a --     pipeline stage supported by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> --     identified by the @pipelineBindPoint@ member of the source subpass -- -- -   #VUID-VkRenderPassCreateInfo2-pDependencies-03055# For any element@@ -1934,7 +1934,7 @@ --     'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags --     included in the @dstStageMask@ member of that dependency /must/ be a --     pipeline stage supported by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> --     identified by the @pipelineBindPoint@ member of the destination --     subpass --@@ -1997,7 +1997,7 @@ -- -   #VUID-VkRenderPassCreateInfo2-pAttachments-04586# If any element of --     @pAttachments@ is used as a fragment shading rate attachment in any --     subpass, it /must/ have an image format whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --
src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs view
@@ -190,7 +190,7 @@ --     If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have --     the value 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it --     /must/ have an image format whose---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' --
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -71,7 +71,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawIndirectCount-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -127,7 +127,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawIndirectCount-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -135,7 +135,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawIndirectCount-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -336,50 +336,50 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-viewportCount-03417# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawIndirectCount-scissorCount-03418# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawIndirectCount-viewportCount-03419# If the bound --     graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-viewportCount-04137# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -387,11 +387,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-viewportCount-04138# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -399,11 +399,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-viewportCount-04139# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -411,11 +411,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-viewportCount-04140# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -423,11 +423,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141# If --     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -435,11 +435,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142# If --     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -447,21 +447,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectCount-None-04876# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawIndirectCount-None-04877# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -479,14 +479,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawIndirectCount-blendEnable-04727# If rasterization is@@ -509,7 +509,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06172# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -518,7 +518,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06173# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -527,7 +527,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06174# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -536,7 +536,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06175# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -545,7 +545,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06176# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -554,7 +554,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06177# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -563,61 +563,61 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-viewMask-06178# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06183# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -626,7 +626,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-imageView-06184# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -639,11 +639,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -655,13 +655,13 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -669,17 +669,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -687,7 +687,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188# If the --     currently bound pipeline was created without a@@ -695,11 +695,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -708,37 +708,37 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectCount-renderPass-06198# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -761,7 +761,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-primitiveTopology-03420# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this@@ -777,7 +777,7 @@ --     pipeline was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic states enabled, then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this@@ -785,7 +785,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-pStrides-04913# If the bound graphics --     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     dynamic state enabled, then@@ -813,7 +813,7 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-04879# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT' --     /must/ have been called in the current command buffer prior to this@@ -1015,7 +1015,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1071,7 +1071,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -1079,7 +1079,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02697# For each set /n/ --     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'@@ -1282,50 +1282,50 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419# If the --     bound graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1333,11 +1333,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1345,11 +1345,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1357,11 +1357,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1369,11 +1369,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1381,11 +1381,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1393,21 +1393,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04876# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04877# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -1425,14 +1425,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727# If@@ -1456,7 +1456,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06172# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1465,7 +1465,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06173# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1474,7 +1474,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06174# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1483,7 +1483,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06175# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1492,7 +1492,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06176# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1501,7 +1501,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06177# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1510,61 +1510,61 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06183# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1573,7 +1573,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-imageView-06184# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1586,11 +1586,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -1602,13 +1602,13 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1616,17 +1616,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1634,7 +1634,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188# If --     the currently bound pipeline was created without a@@ -1642,11 +1642,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -1655,37 +1655,37 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -1709,7 +1709,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this@@ -1725,7 +1725,7 @@ --     graphics pipeline was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic states enabled, then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this@@ -1733,7 +1733,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913# If the bound --     graphics pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     dynamic state enabled, then@@ -1761,7 +1761,7 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT' --     /must/ have been called in the current command buffer prior to this
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs view
@@ -60,9 +60,9 @@     -- @shaderSubgroupExtendedTypes@ is a boolean specifying whether subgroup     -- operations can use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit     -- floating-point, and vectors of these types in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>     -- with-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,     -- if the implementation supports the types.     shaderSubgroupExtendedTypes :: Bool }   deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs view
@@ -101,7 +101,7 @@ -- Note -- -- If a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission> -- command is pending execution, then the value returned by this command -- /may/ immediately be out of date. --@@ -221,7 +221,7 @@ -- after the @timeout@ has expired. -- -- If device loss occurs (see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>) -- before the timeout has expired, 'waitSemaphores' /must/ return in finite -- time with either 'Vulkan.Core10.Enums.Result.SUCCESS' or -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'.@@ -304,7 +304,7 @@ -- -- When 'signalSemaphore' is executed on the host, it defines and -- immediately executes a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- which sets the timeline semaphore to the given value. -- -- The first synchronization scope is defined by the host execution model,@@ -508,7 +508,7 @@ -- == Valid Usage -- -- -   #VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-timelineSemaphore timelineSemaphore>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-timelineSemaphore timelineSemaphore> --     feature is not enabled, @semaphoreType@ /must/ not equal --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' --@@ -838,7 +838,7 @@     -- which does not differ from the current value of the semaphore or the     -- value of any outstanding semaphore wait or signal operation on     -- @semaphore@ by more than-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>     value :: Word64   }   deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs view
@@ -59,7 +59,7 @@     -- @uniformBufferStandardLayout@ indicates that the implementation supports     -- the same layouts for uniform buffers as for storage and other kinds of     -- buffers. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Buffer Layout>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Buffer Layout>.     uniformBufferStandardLayout :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs view
@@ -58,7 +58,7 @@ data PhysicalDeviceVulkanMemoryModelFeatures = PhysicalDeviceVulkanMemoryModelFeatures   { -- | #extension-features-vulkanMemoryModel# @vulkanMemoryModel@ indicates     -- whether the Vulkan Memory Model is supported, as defined in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-model Vulkan Memory Model>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model Vulkan Memory Model>.     -- This also indicates whether shader modules /can/ declare the     -- @VulkanMemoryModel@ capability.     vulkanMemoryModel :: Bool@@ -71,7 +71,7 @@   , -- | #extension-features-vulkanMemoryModelAvailabilityVisibilityChains#     -- @vulkanMemoryModelAvailabilityVisibilityChains@ indicates whether the     -- Vulkan Memory Model can use-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-model-availability-visibility availability and visibility chains>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model-availability-visibility availability and visibility chains>     -- with more than one element.     vulkanMemoryModelAvailabilityVisibilityChains :: Bool   }
+ src/Vulkan/Core13.hs view
@@ -0,0 +1,875 @@+{-# language CPP #-}+-- No documentation found for Chapter "Core13"+module Vulkan.Core13  ( pattern API_VERSION_1_3+                      , PhysicalDeviceVulkan13Features(..)+                      , PhysicalDeviceVulkan13Properties(..)+                      , StructureType(..)+                      , module Vulkan.Core13.Enums+                      , module Vulkan.Core13.Handles+                      , module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state+                      , module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2+                      , module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness+                      , module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block+                      , module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control+                      , module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback+                      , module Vulkan.Core13.Promoted_From_VK_EXT_private_data+                      , module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation+                      , module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control+                      , module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment+                      , module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr+                      , module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info+                      , module Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2+                      , module Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering+                      , module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2+                      , module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4+                      , module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product+                      , module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation+                      , module Vulkan.Core13.Promoted_From_VK_KHR_synchronization2+                      , module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory+                      ) where+import Vulkan.Core13.Enums+import Vulkan.Core13.Handles+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2+import Vulkan.Core13.Promoted_From_VK_EXT_image_robustness+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback+import Vulkan.Core13.Promoted_From_VK_EXT_private_data+import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control+import Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment+import Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr+import Vulkan.Core13.Promoted_From_VK_EXT_tooling_info+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering+import Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product+import Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2+import Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Version (pattern MAKE_API_VERSION)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+pattern API_VERSION_1_3 :: Word32+pattern API_VERSION_1_3 = MAKE_API_VERSION 1 3 0+++-- | VkPhysicalDeviceVulkan13Features - Structure describing the Vulkan 1.3+-- features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceVulkan13Features' 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. 'PhysicalDeviceVulkan13Features' /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_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVulkan13Features = PhysicalDeviceVulkan13Features+  { -- | #features-robustImageAccess# @robustImageAccess@ indicates whether image+    -- accesses are tightly bounds-checked against the dimensions of the image+    -- view.+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-input-validation Invalid texels>+    -- resulting from out of bounds image loads will be replaced as described+    -- in+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>,+    -- with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A+    -- components based on the format.+    robustImageAccess :: Bool+  , -- | #features-inlineUniformBlock# @inlineUniformBlock@ indicates whether the+    -- implementation supports inline uniform block descriptors. If this+    -- feature is not enabled,+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+    -- /must/ not be used.+    inlineUniformBlock :: Bool+  , -- | #features-descriptorBindingInlineUniformBlockUpdateAfterBind#+    -- @descriptorBindingInlineUniformBlockUpdateAfterBind@ indicates whether+    -- the implementation supports updating inline uniform block descriptors+    -- after a set is bound. If this feature is not enabled,+    -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+    -- /must/ not be used with+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'.+    descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool+  , -- | #features-pipelineCreationCacheControl# @pipelineCreationCacheControl@+    -- indicates that the implementation supports:+    --+    -- -   The following /can/ be used in @Vk*PipelineCreateInfo@::@flags@:+    --+    --     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+    --+    --     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'+    --+    -- -   The following /can/ be used in+    --     'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo'::@flags@:+    --+    --     -   'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT'+    pipelineCreationCacheControl :: Bool+  , -- | #features-privateData# @privateData@ indicates whether the+    -- implementation supports private data. See+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#private-data Private Data>.+    privateData :: Bool+  , -- | #features-shaderDemoteToHelperInvocation#+    -- @shaderDemoteToHelperInvocation@ indicates whether the implementation+    -- supports the SPIR-V @DemoteToHelperInvocationEXT@ capability.+    shaderDemoteToHelperInvocation :: Bool+  , -- | #features-shaderTerminateInvocation# @shaderTerminateInvocation@+    -- specifies whether the implementation supports SPIR-V modules that use+    -- the @SPV_KHR_terminate_invocation@ extension.+    shaderTerminateInvocation :: Bool+  , -- | #features-subgroupSizeControl# @subgroupSizeControl@ indicates whether+    -- the implementation supports controlling shader subgroup sizes via the+    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+    -- flag and the+    -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+    -- structure.+    subgroupSizeControl :: Bool+  , -- | #features-computeFullSubgroups# @computeFullSubgroups@ indicates whether+    -- the implementation supports requiring full subgroups in compute shaders+    -- via the+    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+    -- flag.+    computeFullSubgroups :: Bool+  , -- | #features-synchronization2# @synchronization2@ indicates whether the+    -- implementation supports the new set of synchronization commands+    -- introduced in @VK_KHR_synchronization2@.+    synchronization2 :: Bool+  , -- | #features-textureCompressionASTC_HDR# @textureCompressionASTC_HDR@+    -- indicates whether all of the ASTC HDR compressed texture formats are+    -- supported. If this feature is enabled, then the+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+    -- and+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+    -- features /must/ be supported in @optimalTilingFeatures@ for the+    -- following formats:+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK'+    --+    -- To query for additional properties, or if the feature is not enabled,+    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+    -- and+    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'+    -- /can/ be used to check for supported properties of individual formats as+    -- normal.+    textureCompressionASTC_HDR :: Bool+  , -- | #features-shaderZeroInitializeWorkgroupMemory#+    -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the+    -- implementation supports initializing a variable in Workgroup storage+    -- class.+    shaderZeroInitializeWorkgroupMemory :: Bool+  , -- | #features-dynamicRendering# @dynamicRendering@ specifies that the+    -- implementation supports dynamic render pass instances using the+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+    -- command.+    dynamicRendering :: Bool+  , -- | #features-shaderIntegerDotProduct# @shaderIntegerDotProduct@ specifies+    -- whether shader modules /can/ declare the @DotProductInputAllKHR@,+    -- @DotProductInput4x8BitKHR@, @DotProductInput4x8BitPackedKHR@ and+    -- @DotProductKHR@ capabilities.+    shaderIntegerDotProduct :: Bool+  , -- | #features-maintenance4# @maintenance4@ indicates that the implementation+    -- supports the following:+    --+    -- -   The application /may/ destroy a+    --     'Vulkan.Core10.Handles.PipelineLayout' object immediately after+    --     using it to create another object.+    --+    -- -   @LocalSizeId@ /can/ be used as an alternative to @LocalSize@ to+    --     specify the local workgroup size with specialization constants.+    --+    -- -   Images created with identical creation parameters will always have+    --     the same alignment requirements.+    --+    -- -   The size memory requirement of a buffer or image is never greater+    --     than that of another buffer or image created with a greater or equal+    --     size.+    --+    -- -   Push constants do not have to be initialized before they are+    --     dynamically accessed.+    --+    -- -   The interface matching rules allow a larger output vector to match+    --     with a smaller input vector, with additional values being discarded.+    maintenance4 :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVulkan13Features)+#endif+deriving instance Show PhysicalDeviceVulkan13Features++instance ToCStruct PhysicalDeviceVulkan13Features where+  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceVulkan13Features{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (inlineUniformBlock))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (descriptorBindingInlineUniformBlockUpdateAfterBind))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (pipelineCreationCacheControl))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (privateData))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (shaderDemoteToHelperInvocation))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (subgroupSizeControl))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (computeFullSubgroups))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (synchronization2))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_HDR))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (dynamicRendering))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (shaderIntegerDotProduct))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (maintenance4))+    f+  cStructSize = 80+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceVulkan13Features where+  peekCStruct p = do+    robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    pipelineCreationCacheControl <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    privateData <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    shaderDemoteToHelperInvocation <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+    shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+    subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+    computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+    synchronization2 <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+    textureCompressionASTC_HDR <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+    shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+    dynamicRendering <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+    shaderIntegerDotProduct <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+    maintenance4 <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+    pure $ PhysicalDeviceVulkan13Features+             (bool32ToBool robustImageAccess) (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind) (bool32ToBool pipelineCreationCacheControl) (bool32ToBool privateData) (bool32ToBool shaderDemoteToHelperInvocation) (bool32ToBool shaderTerminateInvocation) (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups) (bool32ToBool synchronization2) (bool32ToBool textureCompressionASTC_HDR) (bool32ToBool shaderZeroInitializeWorkgroupMemory) (bool32ToBool dynamicRendering) (bool32ToBool shaderIntegerDotProduct) (bool32ToBool maintenance4)++instance Storable PhysicalDeviceVulkan13Features where+  sizeOf ~_ = 80+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVulkan13Features where+  zero = PhysicalDeviceVulkan13Features+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkPhysicalDeviceVulkan13Properties - Structure specifying physical+-- device properties for functionality promoted to Vulkan 1.3+--+-- = Description+--+-- If the 'PhysicalDeviceVulkan13Properties' 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.+--+-- These properties correspond to Vulkan 1.3 functionality.+--+-- The members of 'PhysicalDeviceVulkan13Properties' /must/ have the same+-- values as the corresponding members of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVulkan13Properties = PhysicalDeviceVulkan13Properties+  { -- | #limits-minSubgroupSize# @minSubgroupSize@ is the minimum subgroup size+    -- supported by this device. @minSubgroupSize@ is at least one if any of+    -- the physical device’s queues support+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @minSubgroupSize@+    -- is a power-of-two. @minSubgroupSize@ is less than or equal to+    -- @maxSubgroupSize@. @minSubgroupSize@ is less than or equal to+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+    minSubgroupSize :: Word32+  , -- | #limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum subgroup size+    -- supported by this device. @maxSubgroupSize@ is at least one if any of+    -- the physical device’s queues support+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @maxSubgroupSize@+    -- is a power-of-two. @maxSubgroupSize@ is greater than or equal to+    -- @minSubgroupSize@. @maxSubgroupSize@ is greater than or equal to+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+    maxSubgroupSize :: Word32+  , -- | #limits-maxComputeWorkgroupSubgroups# @maxComputeWorkgroupSubgroups@ is+    -- the maximum number of subgroups supported by the implementation within a+    -- workgroup.+    maxComputeWorkgroupSubgroups :: Word32+  , -- | #limits-requiredSubgroupSizeStages# @requiredSubgroupSizeStages@ is a+    -- bitfield of what shader stages support having a required subgroup size+    -- specified.+    requiredSubgroupSizeStages :: ShaderStageFlags+  , -- | #limits-maxInlineUniformBlockSize# @maxInlineUniformBlockSize@ is the+    -- maximum size in bytes of an+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>+    -- binding.+    maxInlineUniformBlockSize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceVulkan13Properties" "maxPerStageDescriptorInlineUniformBlocks"+    maxPerStageDescriptorInlineUniformBlocks :: Word32+  , -- | #limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#+    -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to+    -- @maxPerStageDescriptorInlineUniformBlocks@ but counts descriptor+    -- bindings from descriptor sets created with or without the+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+    -- bit set.+    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32+  , -- | #limits-maxDescriptorSetInlineUniformBlocks#+    -- @maxDescriptorSetInlineUniformBlocks@ is the maximum number of inline+    -- uniform block bindings that /can/ be included in descriptor bindings in+    -- a pipeline layout across all pipeline shader stages and descriptor set+    -- numbers. Descriptor bindings with a descriptor type of+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+    -- count against this limit. Only descriptor bindings in descriptor set+    -- layouts created without the+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+    -- bit set count against this limit.+    maxDescriptorSetInlineUniformBlocks :: Word32+  , -- | #limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks#+    -- @maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ is similar to+    -- @maxDescriptorSetInlineUniformBlocks@ but counts descriptor bindings+    -- from descriptor sets created with or without the+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+    -- bit set.+    maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32+  , -- | #limits-maxInlineUniformTotalSize# @maxInlineUniformTotalSize@ is the+    -- maximum total size in bytes of all inline uniform block bindings, across+    -- all pipeline shader stages and descriptor set numbers, that /can/ be+    -- included in a pipeline layout. Descriptor bindings with a descriptor+    -- type of+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+    -- count against this limit.+    maxInlineUniformTotalSize :: Word32+  , -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct8BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct8BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct8BitSignedAccelerated :: Bool+  , -- | @integerDotProduct8BitMixedSignednessAccelerated@ is a boolean that will+    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit mixed+    -- signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct8BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct4x8BitPackedUnsignedAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit+    -- unsigned dot product operations from operands packed into 32-bit+    -- integers using the @OpUDotKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct4x8BitPackedUnsignedAccelerated :: Bool+  , -- | @integerDotProduct4x8BitPackedSignedAccelerated@ is a boolean that will+    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed+    -- dot product operations from operands packed into 32-bit integers using+    -- the @OpSDotKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct4x8BitPackedSignedAccelerated :: Bool+  , -- | @integerDotProduct4x8BitPackedMixedSignednessAccelerated@ is a boolean+    -- that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for+    -- 8-bit mixed signedness dot product operations from operands packed into+    -- 32-bit integers using the @OpSUDotKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct4x8BitPackedMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct16BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct16BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct16BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct16BitSignedAccelerated :: Bool+  , -- | @integerDotProduct16BitMixedSignednessAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit+    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct16BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct32BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct32BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct32BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct32BitSignedAccelerated :: Bool+  , -- | @integerDotProduct32BitMixedSignednessAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit+    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct32BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct64BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct64BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct64BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct64BitSignedAccelerated :: Bool+  , -- | @integerDotProduct64BitMixedSignednessAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit+    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct64BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating8BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating8BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating8BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit unsigned accumulating saturating dot product+    -- operations from operands packed into 32-bit integers using the+    -- @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit signed accumulating saturating dot product operations+    -- from operands packed into 32-bit integers using the @OpSDotAccSatKHR@+    -- SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit mixed signedness accumulating saturating dot product+    -- operations from operands packed into 32-bit integers using the+    -- @OpSUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating16BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 16-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating16BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 16-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating16BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 16-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating32BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 32-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating32BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 32-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating32BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 32-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating64BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 64-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating64BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 64-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating64BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 64-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool+  , -- | #limits-storageTexelBufferOffsetAlignmentBytes#+    -- @storageTexelBufferOffsetAlignmentBytes@ is a byte alignment that is+    -- sufficient for a storage texel buffer of any format. The value /must/ be+    -- a power of two.+    storageTexelBufferOffsetAlignmentBytes :: DeviceSize+  , -- | #limits-storageTexelBufferOffsetSingleTexelAlignment#+    -- @storageTexelBufferOffsetSingleTexelAlignment@ indicates whether single+    -- texel alignment is sufficient for a storage texel buffer of any format.+    -- The value /must/ be a power of two.+    storageTexelBufferOffsetSingleTexelAlignment :: Bool+  , -- | #limits-uniformTexelBufferOffsetAlignmentBytes#+    -- @uniformTexelBufferOffsetAlignmentBytes@ is a byte alignment that is+    -- sufficient for a uniform texel buffer of any format. The value /must/ be+    -- a power of two.+    uniformTexelBufferOffsetAlignmentBytes :: DeviceSize+  , -- | #limits-uniformTexelBufferOffsetSingleTexelAlignment#+    -- @uniformTexelBufferOffsetSingleTexelAlignment@ indicates whether single+    -- texel alignment is sufficient for a uniform texel buffer of any format.+    -- The value /must/ be a power of two.+    uniformTexelBufferOffsetSingleTexelAlignment :: Bool+  , -- | #limits-maxBufferSize# @maxBufferSize@ is the maximum size+    -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.+    maxBufferSize :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVulkan13Properties)+#endif+deriving instance Show PhysicalDeviceVulkan13Properties++instance ToCStruct PhysicalDeviceVulkan13Properties where+  withCStruct x f = allocaBytes 216 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceVulkan13Properties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (minSubgroupSize)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxSubgroupSize)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxComputeWorkgroupSubgroups)+    poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (requiredSubgroupSizeStages)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxInlineUniformBlockSize)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxPerStageDescriptorInlineUniformBlocks)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (maxDescriptorSetInlineUniformBlocks)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindInlineUniformBlocks)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxInlineUniformTotalSize)+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitUnsignedAccelerated))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitSignedAccelerated))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedUnsignedAccelerated))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedSignedAccelerated))+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedMixedSignednessAccelerated))+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitUnsignedAccelerated))+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitSignedAccelerated))+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitUnsignedAccelerated))+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitSignedAccelerated))+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitUnsignedAccelerated))+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitSignedAccelerated))+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitSignedAccelerated))+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))+    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))+    poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))+    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitSignedAccelerated))+    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))+    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitSignedAccelerated))+    poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))+    poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitSignedAccelerated))+    poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 176 :: Ptr DeviceSize)) (storageTexelBufferOffsetAlignmentBytes)+    poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (storageTexelBufferOffsetSingleTexelAlignment))+    poke ((p `plusPtr` 192 :: Ptr DeviceSize)) (uniformTexelBufferOffsetAlignmentBytes)+    poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (uniformTexelBufferOffsetSingleTexelAlignment))+    poke ((p `plusPtr` 208 :: Ptr DeviceSize)) (maxBufferSize)+    f+  cStructSize = 216+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (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 Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 176 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 192 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 208 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct PhysicalDeviceVulkan13Properties where+  peekCStruct p = do+    minSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    maxSubgroupSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))+    maxInlineUniformBlockSize <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    maxPerStageDescriptorInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    maxInlineUniformTotalSize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+    integerDotProduct8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+    integerDotProduct8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+    integerDotProduct8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+    integerDotProduct4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+    integerDotProduct4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+    integerDotProduct4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))+    integerDotProduct16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))+    integerDotProduct16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))+    integerDotProduct16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))+    integerDotProduct32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))+    integerDotProduct32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))+    integerDotProduct32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))+    integerDotProduct64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))+    integerDotProduct64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))+    integerDotProduct64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 136 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 140 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 160 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 164 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 168 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 172 :: Ptr Bool32))+    storageTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 176 :: Ptr DeviceSize))+    storageTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 184 :: Ptr Bool32))+    uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 192 :: Ptr DeviceSize))+    uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 200 :: Ptr Bool32))+    maxBufferSize <- peek @DeviceSize ((p `plusPtr` 208 :: Ptr DeviceSize))+    pure $ PhysicalDeviceVulkan13Properties+             minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks maxInlineUniformTotalSize (bool32ToBool integerDotProduct8BitUnsignedAccelerated) (bool32ToBool integerDotProduct8BitSignedAccelerated) (bool32ToBool integerDotProduct8BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProduct16BitUnsignedAccelerated) (bool32ToBool integerDotProduct16BitSignedAccelerated) (bool32ToBool integerDotProduct16BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct32BitUnsignedAccelerated) (bool32ToBool integerDotProduct32BitSignedAccelerated) (bool32ToBool integerDotProduct32BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct64BitUnsignedAccelerated) (bool32ToBool integerDotProduct64BitSignedAccelerated) (bool32ToBool integerDotProduct64BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated) storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment) maxBufferSize++instance Storable PhysicalDeviceVulkan13Properties where+  sizeOf ~_ = 216+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVulkan13Properties where+  zero = PhysicalDeviceVulkan13Properties+           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+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+
+ src/Vulkan/Core13.hs-boot view
@@ -0,0 +1,25 @@+{-# language CPP #-}+-- No documentation found for Chapter "Core13"+module Vulkan.Core13  ( PhysicalDeviceVulkan13Features+                      , PhysicalDeviceVulkan13Properties+                      ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceVulkan13Features++instance ToCStruct PhysicalDeviceVulkan13Features+instance Show PhysicalDeviceVulkan13Features++instance FromCStruct PhysicalDeviceVulkan13Features+++data PhysicalDeviceVulkan13Properties++instance ToCStruct PhysicalDeviceVulkan13Properties+instance Show PhysicalDeviceVulkan13Properties++instance FromCStruct PhysicalDeviceVulkan13Properties+
+ src/Vulkan/Core13/Enums.hs view
@@ -0,0 +1,20 @@+{-# language CPP #-}+-- No documentation found for Chapter "Enums"+module Vulkan.Core13.Enums  ( module Vulkan.Core13.Enums.AccessFlags2+                            , module Vulkan.Core13.Enums.FormatFeatureFlags2+                            , module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits+                            , module Vulkan.Core13.Enums.PipelineStageFlags2+                            , module Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits+                            , module Vulkan.Core13.Enums.RenderingFlagBits+                            , module Vulkan.Core13.Enums.SubmitFlagBits+                            , module Vulkan.Core13.Enums.ToolPurposeFlagBits+                            ) where+import Vulkan.Core13.Enums.AccessFlags2+import Vulkan.Core13.Enums.FormatFeatureFlags2+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits+import Vulkan.Core13.Enums.PipelineStageFlags2+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits+import Vulkan.Core13.Enums.RenderingFlagBits+import Vulkan.Core13.Enums.SubmitFlagBits+import Vulkan.Core13.Enums.ToolPurposeFlagBits+
+ src/Vulkan/Core13/Enums/AccessFlags2.hs view
@@ -0,0 +1,479 @@+{-# language CPP #-}+-- No documentation found for Chapter "AccessFlags2"+module Vulkan.Core13.Enums.AccessFlags2  ( pattern ACCESS_2_NONE_KHR+                                         , pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR+                                         , pattern ACCESS_2_INDEX_READ_BIT_KHR+                                         , pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR+                                         , pattern ACCESS_2_UNIFORM_READ_BIT_KHR+                                         , pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR+                                         , pattern ACCESS_2_SHADER_READ_BIT_KHR+                                         , pattern ACCESS_2_SHADER_WRITE_BIT_KHR+                                         , pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR+                                         , pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR+                                         , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR+                                         , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR+                                         , pattern ACCESS_2_TRANSFER_READ_BIT_KHR+                                         , pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR+                                         , pattern ACCESS_2_HOST_READ_BIT_KHR+                                         , pattern ACCESS_2_HOST_WRITE_BIT_KHR+                                         , pattern ACCESS_2_MEMORY_READ_BIT_KHR+                                         , pattern ACCESS_2_MEMORY_WRITE_BIT_KHR+                                         , pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR+                                         , pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR+                                         , pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR+                                         , AccessFlags2+                                         , AccessFlagBits2( ACCESS_2_NONE+                                                          , ACCESS_2_INDIRECT_COMMAND_READ_BIT+                                                          , ACCESS_2_INDEX_READ_BIT+                                                          , ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT+                                                          , ACCESS_2_UNIFORM_READ_BIT+                                                          , ACCESS_2_INPUT_ATTACHMENT_READ_BIT+                                                          , ACCESS_2_SHADER_READ_BIT+                                                          , ACCESS_2_SHADER_WRITE_BIT+                                                          , ACCESS_2_COLOR_ATTACHMENT_READ_BIT+                                                          , ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT+                                                          , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT+                                                          , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT+                                                          , ACCESS_2_TRANSFER_READ_BIT+                                                          , ACCESS_2_TRANSFER_WRITE_BIT+                                                          , ACCESS_2_HOST_READ_BIT+                                                          , ACCESS_2_HOST_WRITE_BIT+                                                          , ACCESS_2_MEMORY_READ_BIT+                                                          , ACCESS_2_MEMORY_WRITE_BIT+                                                          , ACCESS_2_SHADER_SAMPLED_READ_BIT+                                                          , ACCESS_2_SHADER_STORAGE_READ_BIT+                                                          , ACCESS_2_SHADER_STORAGE_WRITE_BIT+                                                          , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI+                                                          , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT+                                                          , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT+                                                          , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR+                                                          , ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR+                                                          , ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+                                                          , ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV+                                                          , ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV+                                                          , ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT+                                                          , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT+                                                          , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT+                                                          , ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT+                                                          , ..+                                                          )+                                         ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags64)+-- No documentation found for TopLevel "VK_ACCESS_2_NONE_KHR"+pattern ACCESS_2_NONE_KHR = ACCESS_2_NONE+++-- No documentation found for TopLevel "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR"+pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = ACCESS_2_INDIRECT_COMMAND_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_INDEX_READ_BIT_KHR"+pattern ACCESS_2_INDEX_READ_BIT_KHR = ACCESS_2_INDEX_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR"+pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_UNIFORM_READ_BIT_KHR"+pattern ACCESS_2_UNIFORM_READ_BIT_KHR = ACCESS_2_UNIFORM_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = ACCESS_2_INPUT_ATTACHMENT_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_READ_BIT_KHR"+pattern ACCESS_2_SHADER_READ_BIT_KHR = ACCESS_2_SHADER_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_WRITE_BIT_KHR"+pattern ACCESS_2_SHADER_WRITE_BIT_KHR = ACCESS_2_SHADER_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR"+pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR"+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_READ_BIT_KHR"+pattern ACCESS_2_TRANSFER_READ_BIT_KHR = ACCESS_2_TRANSFER_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR"+pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR = ACCESS_2_TRANSFER_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_HOST_READ_BIT_KHR"+pattern ACCESS_2_HOST_READ_BIT_KHR = ACCESS_2_HOST_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_HOST_WRITE_BIT_KHR"+pattern ACCESS_2_HOST_WRITE_BIT_KHR = ACCESS_2_HOST_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_READ_BIT_KHR"+pattern ACCESS_2_MEMORY_READ_BIT_KHR = ACCESS_2_MEMORY_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_WRITE_BIT_KHR"+pattern ACCESS_2_MEMORY_WRITE_BIT_KHR = ACCESS_2_MEMORY_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR"+pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = ACCESS_2_SHADER_SAMPLED_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR"+pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = ACCESS_2_SHADER_STORAGE_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR"+pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = ACCESS_2_SHADER_STORAGE_WRITE_BIT+++type AccessFlags2 = AccessFlagBits2++-- | VkAccessFlagBits2 - Access flags for VkAccessFlags2+--+-- = Description+--+-- Note+--+-- In situations where an application wishes to select all access types for+-- a given set of pipeline stages, 'ACCESS_2_MEMORY_READ_BIT' or+-- 'ACCESS_2_MEMORY_WRITE_BIT' can be used. This is particularly useful+-- when specifying stages that only have a single access type.+--+-- Note+--+-- The 'AccessFlags2' bitmask goes beyond the 31 individual bit flags+-- allowable within a C99 enum, which is how+-- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' is defined. The+-- first 31 values are common to both, and are interchangeable.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>+newtype AccessFlagBits2 = AccessFlagBits2 Flags64+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'ACCESS_2_NONE' specifies no accesses.+pattern ACCESS_2_NONE                               = AccessFlagBits2 0x0000000000000000+-- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT' specifies read access to command+-- data read from indirect buffers as part of an indirect build, trace,+-- drawing or dispatch command. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT'+-- pipeline stage.+pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT          = AccessFlagBits2 0x0000000000000001+-- | 'ACCESS_2_INDEX_READ_BIT' specifies read access to an index buffer as+-- part of an indexed drawing command, bound by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access+-- occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_INDEX_READ_BIT                     = AccessFlagBits2 0x0000000000000002+-- | 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex+-- buffer as part of a drawing command, bound by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access+-- occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT          = AccessFlagBits2 0x0000000000000004+-- | 'ACCESS_2_UNIFORM_READ_BIT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>+-- in any shader pipeline stage.+pattern ACCESS_2_UNIFORM_READ_BIT                   = AccessFlagBits2 0x0000000000000008+-- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT' specifies read access to an+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment>+-- within a render pass during subpass shading or fragment shading. Such+-- access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'+-- pipeline stage.+pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT          = AccessFlagBits2 0x0000000000000010+-- | 'ACCESS_2_SHADER_READ_BIT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>+-- in any shader pipeline. In addition, it is equivalent to the logical OR+-- of:+--+-- -   'ACCESS_2_UNIFORM_READ_BIT'+--+-- -   'ACCESS_2_SHADER_SAMPLED_READ_BIT'+--+-- -   'ACCESS_2_SHADER_STORAGE_READ_BIT'+pattern ACCESS_2_SHADER_READ_BIT                    = AccessFlagBits2 0x0000000000000020+-- | 'ACCESS_2_SHADER_WRITE_BIT' is equivalent to+-- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT'.+pattern ACCESS_2_SHADER_WRITE_BIT                   = AccessFlagBits2 0x0000000000000040+-- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>,+-- such as via+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,+-- or via certain+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- It does not include+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT          = AccessFlagBits2 0x0000000000000080+-- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment>+-- during a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>+-- or via certain+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT         = AccessFlagBits2 0x0000000000000100+-- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- via+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- or via certain+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'+-- pipeline stages.+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT  = AccessFlagBits2 0x0000000000000200+-- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to+-- a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- via+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- or via certain+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'+-- pipeline stages.+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000400+-- | 'ACCESS_2_TRANSFER_READ_BIT' specifies read access to an image or buffer+-- in a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>+-- operation. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT', or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT'+-- pipeline stages.+pattern ACCESS_2_TRANSFER_READ_BIT                  = AccessFlagBits2 0x0000000000000800+-- | 'ACCESS_2_TRANSFER_WRITE_BIT' specifies write access to an image or+-- buffer in a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>+-- operation. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT'+-- pipeline stages.+pattern ACCESS_2_TRANSFER_WRITE_BIT                 = AccessFlagBits2 0x0000000000001000+-- | 'ACCESS_2_HOST_READ_BIT' specifies read access by a host operation.+-- Accesses of this type are not performed through a resource, but directly+-- on memory. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+-- pipeline stage.+pattern ACCESS_2_HOST_READ_BIT                      = AccessFlagBits2 0x0000000000002000+-- | 'ACCESS_2_HOST_WRITE_BIT' specifies write access by a host operation.+-- Accesses of this type are not performed through a resource, but directly+-- on memory. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+-- pipeline stage.+pattern ACCESS_2_HOST_WRITE_BIT                     = AccessFlagBits2 0x0000000000004000+-- | 'ACCESS_2_MEMORY_READ_BIT' specifies all read accesses. It is always+-- valid in any access mask, and is treated as equivalent to setting all+-- @READ@ access flags that are valid where it is used.+pattern ACCESS_2_MEMORY_READ_BIT                    = AccessFlagBits2 0x0000000000008000+-- | 'ACCESS_2_MEMORY_WRITE_BIT' specifies all write accesses. It is always+-- valid in any access mask, and is treated as equivalent to setting all+-- @WRITE@ access flags that are valid where it is used.+pattern ACCESS_2_MEMORY_WRITE_BIT                   = AccessFlagBits2 0x0000000000010000+-- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>+-- in any shader pipeline stage.+pattern ACCESS_2_SHADER_SAMPLED_READ_BIT            = AccessFlagBits2 0x0000000100000000+-- | 'ACCESS_2_SHADER_STORAGE_READ_BIT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- in any shader pipeline stage.+pattern ACCESS_2_SHADER_STORAGE_READ_BIT            = AccessFlagBits2 0x0000000200000000+-- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT' specifies write access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- in any shader pipeline stage.+pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT           = AccessFlagBits2 0x0000000400000000+-- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a+-- invocation mask image in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- pipeline stage.+pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI    = AccessFlagBits2 0x0000008000000000+-- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read+-- access to+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,+-- including+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2 0x0000000000080000+-- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+-- during dynamic+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT  = AccessFlagBits2 0x0000000001000000+-- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access+-- to an acceleration structure or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- as part of a build or copy command. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- pipeline stage.+pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits2 0x0000000000400000+-- | 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to+-- an acceleration structure as part of a trace, build, or copy command, or+-- to an+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- as part of a build command. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+-- pipeline stage or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- pipeline stage.+pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits2 0x0000000000200000+-- | 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read+-- access to a fragment shading rate attachment during rasterization. Such+-- access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- pipeline stage.+pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2 0x0000000000800000+-- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the+-- target command buffer preprocess outputs. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- pipeline stage.+pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV    = AccessFlagBits2 0x0000000000040000+-- | 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer+-- inputs to+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- pipeline stage.+pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV     = AccessFlagBits2 0x0000000000020000+-- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a+-- predicate as part of conditional rendering. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits2 0x0000000000100000+-- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write+-- access to a transform feedback counter buffer which is written when+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'+-- executes. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2 0x0000000008000000+-- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access+-- to a transform feedback counter buffer which is read when+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'+-- executes. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2 0x0000000004000000+-- | 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a+-- transform feedback buffer made when transform feedback is active. Such+-- access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT   = AccessFlagBits2 0x0000000002000000++conNameAccessFlagBits2 :: String+conNameAccessFlagBits2 = "AccessFlagBits2"++enumPrefixAccessFlagBits2 :: String+enumPrefixAccessFlagBits2 = "ACCESS_2_"++showTableAccessFlagBits2 :: [(AccessFlagBits2, String)]+showTableAccessFlagBits2 =+  [ (ACCESS_2_NONE                              , "NONE")+  , (ACCESS_2_INDIRECT_COMMAND_READ_BIT         , "INDIRECT_COMMAND_READ_BIT")+  , (ACCESS_2_INDEX_READ_BIT                    , "INDEX_READ_BIT")+  , (ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT         , "VERTEX_ATTRIBUTE_READ_BIT")+  , (ACCESS_2_UNIFORM_READ_BIT                  , "UNIFORM_READ_BIT")+  , (ACCESS_2_INPUT_ATTACHMENT_READ_BIT         , "INPUT_ATTACHMENT_READ_BIT")+  , (ACCESS_2_SHADER_READ_BIT                   , "SHADER_READ_BIT")+  , (ACCESS_2_SHADER_WRITE_BIT                  , "SHADER_WRITE_BIT")+  , (ACCESS_2_COLOR_ATTACHMENT_READ_BIT         , "COLOR_ATTACHMENT_READ_BIT")+  , (ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT        , "COLOR_ATTACHMENT_WRITE_BIT")+  , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")+  , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")+  , (ACCESS_2_TRANSFER_READ_BIT                 , "TRANSFER_READ_BIT")+  , (ACCESS_2_TRANSFER_WRITE_BIT                , "TRANSFER_WRITE_BIT")+  , (ACCESS_2_HOST_READ_BIT                     , "HOST_READ_BIT")+  , (ACCESS_2_HOST_WRITE_BIT                    , "HOST_WRITE_BIT")+  , (ACCESS_2_MEMORY_READ_BIT                   , "MEMORY_READ_BIT")+  , (ACCESS_2_MEMORY_WRITE_BIT                  , "MEMORY_WRITE_BIT")+  , (ACCESS_2_SHADER_SAMPLED_READ_BIT           , "SHADER_SAMPLED_READ_BIT")+  , (ACCESS_2_SHADER_STORAGE_READ_BIT           , "SHADER_STORAGE_READ_BIT")+  , (ACCESS_2_SHADER_STORAGE_WRITE_BIT          , "SHADER_STORAGE_WRITE_BIT")+  , (ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI   , "INVOCATION_MASK_READ_BIT_HUAWEI")+  , (ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")+  , (ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")+  , (ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")+  , (ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, "ACCELERATION_STRUCTURE_READ_BIT_KHR")+  , (ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")+  , (ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV   , "COMMAND_PREPROCESS_WRITE_BIT_NV")+  , (ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV    , "COMMAND_PREPROCESS_READ_BIT_NV")+  , (ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, "CONDITIONAL_RENDERING_READ_BIT_EXT")+  , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")+  , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")+  , (ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT  , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")+  ]++instance Show AccessFlagBits2 where+  showsPrec = enumShowsPrec enumPrefixAccessFlagBits2+                            showTableAccessFlagBits2+                            conNameAccessFlagBits2+                            (\(AccessFlagBits2 x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read AccessFlagBits2 where+  readPrec = enumReadPrec enumPrefixAccessFlagBits2 showTableAccessFlagBits2 conNameAccessFlagBits2 AccessFlagBits2+
+ src/Vulkan/Core13/Enums/AccessFlags2.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "AccessFlags2"+module Vulkan.Core13.Enums.AccessFlags2  ( AccessFlags2+                                         , AccessFlagBits2+                                         ) where++++type AccessFlags2 = AccessFlagBits2++data AccessFlagBits2+
+ src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs view
@@ -0,0 +1,691 @@+{-# language CPP #-}+-- No documentation found for Chapter "FormatFeatureFlags2"+module Vulkan.Core13.Enums.FormatFeatureFlags2  ( pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT+                                                , pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR+                                                , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR+                                                , FormatFeatureFlags2+                                                , FormatFeatureFlagBits2( FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT+                                                                        , FORMAT_FEATURE_2_STORAGE_IMAGE_BIT+                                                                        , FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT+                                                                        , FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT+                                                                        , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT+                                                                        , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT+                                                                        , FORMAT_FEATURE_2_VERTEX_BUFFER_BIT+                                                                        , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT+                                                                        , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT+                                                                        , FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT+                                                                        , FORMAT_FEATURE_2_BLIT_SRC_BIT+                                                                        , FORMAT_FEATURE_2_BLIT_DST_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT+                                                                        , FORMAT_FEATURE_2_TRANSFER_SRC_BIT+                                                                        , FORMAT_FEATURE_2_TRANSFER_DST_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT+                                                                        , FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+                                                                        , FORMAT_FEATURE_2_DISJOINT_BIT+                                                                        , FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT+                                                                        , FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT+                                                                        , FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT+                                                                        , FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT+                                                                        , FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV+                                                                        , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+                                                                        , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT+                                                                        , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR+                                                                        , ..+                                                                        )+                                                ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags64)+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = FORMAT_FEATURE_2_STORAGE_IMAGE_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR"+pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR"+pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = FORMAT_FEATURE_2_VERTEX_BUFFER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR"+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR"+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR"+pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR"+pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = FORMAT_FEATURE_2_BLIT_SRC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR"+pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = FORMAT_FEATURE_2_BLIT_DST_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR"+pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = FORMAT_FEATURE_2_TRANSFER_SRC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR"+pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = FORMAT_FEATURE_2_TRANSFER_DST_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"+pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR"+pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR = FORMAT_FEATURE_2_DISJOINT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR"+pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT+++type FormatFeatureFlags2 = FormatFeatureFlagBits2++-- | VkFormatFeatureFlagBits2 - Bitmask specifying features supported by a+-- buffer+--+-- = Description+--+-- The following bits /may/ be set in @linearTilingFeatures@ and+-- @optimalTilingFeatures@, specifying that the features are supported by+-- <VkImage.html images> or <VkImageView.html image views> or+-- <VkSamplerYcbcrConversion.html sampler Y′CBCR conversion objects>+-- created with the queried+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' specifies that an image view+--     /can/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+--+-- -   'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT' specifies that an image view+--     /can/ be used as a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+--+-- -   'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image+--     view /can/ be used as storage image that supports atomic operations.+--+-- -   'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT' specifies that an image view+--     /can/ be used as a framebuffer color attachment and as an input+--     attachment.+--+-- -   'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT' specifies that an+--     image view /can/ be used as a framebuffer color attachment that+--     supports blending and as an input attachment.+--+-- -   'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that an+--     image view /can/ be used as a framebuffer depth\/stencil attachment+--     and as an input attachment.+--+-- -   'FORMAT_FEATURE_2_BLIT_SRC_BIT' specifies that an image /can/ be+--     used as @srcImage@ for the+--     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+--     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+--+-- -   'FORMAT_FEATURE_2_BLIT_DST_BIT' specifies that an image /can/ be+--     used as @dstImage@ for the+--     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+--     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if+--     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' is also set, an image view+--     /can/ be used with a sampler that has either of @magFilter@ or+--     @minFilter@ set to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or+--     @mipmapMode@ set to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'.+--     If 'FORMAT_FEATURE_2_BLIT_SRC_BIT' is also set, an image can be used+--     as the @srcImage@ to+--     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+--     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@+--     of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only+--     be exposed for formats that also support the+--     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' or+--     'FORMAT_FEATURE_2_BLIT_SRC_BIT'.+--+--     If the format being queried is a depth\/stencil format, this bit+--     only specifies that the depth aspect (not the stencil aspect) of an+--     image of this format supports linear filtering. Where depth+--     comparison is supported it /may/ be linear filtered whether this bit+--     is present or not, but where this bit is not present the filtered+--     value /may/ be computed in an implementation-dependent manner which+--     differs from the normal rules of linear filtering. The resulting+--     value /must/ be in the range [0,1] and /should/ be proportional to,+--     or a weighted average of, the number of comparison passes or+--     failures.+--+-- -   'FORMAT_FEATURE_2_TRANSFER_SRC_BIT' specifies that an image /can/ be+--     used as a source image for+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.+--+-- -   'FORMAT_FEATURE_2_TRANSFER_DST_BIT' specifies that an image /can/ be+--     used as a destination image for+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies+--     'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with+--     a min or max+--     'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'.+--     This bit /must/ only be exposed for formats that also support the+--     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT' specifies that+--     'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has+--     either of @magFilter@ or @minFilter@ set to+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the+--     source image for a blit with @filter@ set to+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit+--     /must/ only be exposed for formats that also support the+--     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'. If the format being queried is+--     a depth\/stencil format, this only specifies that the depth aspect+--     is cubic filterable.+--+-- -   'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an+--     application /can/ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     using this format as a source, and that an image of this format+--     /can/ be used with a+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'+--     @xChromaOffset@ and\/or @yChromaOffset@ of+--     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'.+--     Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be+--     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.+--     If a format does not incorporate chroma downsampling (it is not a+--     “422” or “420” format) but the implementation supports sampler+--     Y′CBCR conversion for this format, the implementation /must/ set+--     'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT'.+--+-- -   'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' specifies that an+--     application /can/ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     using this format as a source, and that an image of this format+--     /can/ be used with a+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'+--     @xChromaOffset@ and\/or @yChromaOffset@ of+--     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.+--     Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be+--     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If+--     neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' nor+--     'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the+--     application /must/ not define a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     using this format as a source.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT'+--     specifies that an application /can/ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+--     using this format as a source with @chromaFilter@ set to+--     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT'+--     specifies that the format can have different chroma, min, and mag+--     filters.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'+--     specifies that reconstruction is explicit, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>.+--     If this bit is not present, reconstruction is implicit by default.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'+--     specifies that reconstruction /can/ be forcibly made explicit by+--     setting+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@+--     to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being+--     queried supports+--     'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'+--     it /must/ also support+--     'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'.+--+-- -   'FORMAT_FEATURE_2_DISJOINT_BIT' specifies that a multi-planar image+--     /can/ have the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'+--     set during image creation. An implementation /must/ not set+--     'FORMAT_FEATURE_2_DISJOINT_BIT' for /single-plane formats/.+--+-- -   'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an+--     image view /can/ be used as a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+--+-- -   'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     specifies that an image view /can/ be used as a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+--     An implementation /must/ not set this feature for formats with+--     numeric type other than @*UINT@, or set it as a buffer feature.+--+-- -   'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that+--     image views created with this format /can/ be used as+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+--     for read operations without specifying a format.+--+-- -   'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that+--     image views created with this format /can/ be used as+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+--     for write operations without specifying a format.+--+-- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' specifies that+--     image views created with this format /can/ be used for depth+--     comparison performed by @OpImage*Dref@ instructions.+--+-- -   'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the+--     format is supported as a renderable+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>.+--     This bit will be set for renderable color formats in the+--     @linearTilingFeatures@. This /must/ not be set in the+--     @optimalTilingFeatures@ or @bufferFeatures@ members.+--+-- The following bits /may/ be set in @bufferFeatures@, specifying that the+-- features are supported by <VkBuffer.html buffers> or+-- <VkBufferView.html buffer views> created with the queried+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:+--+-- -   'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT' specifies that the+--     format /can/ be used to create a buffer view that /can/ be bound to+--     a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+--     descriptor.+--+-- -   'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT' specifies that the+--     format /can/ be used to create a buffer view that /can/ be bound to+--     a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--     descriptor.+--+-- -   'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' specifies that+--     atomic operations are supported on+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--     with this format.+--+-- -   'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT' specifies that the format /can/+--     be used as a vertex attribute format+--     ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).+--+-- -   'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+--     specifies that the format /can/ be used as the vertex format when+--     creating an+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>+--     ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@).+--     This format /can/ also be used as the vertex format in host memory+--     when doing+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+--     builds.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>+newtype FormatFeatureFlagBits2 = FormatFeatureFlagBits2 Flags64+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' specifies that an image view /can/+-- be+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT               = FormatFeatureFlagBits2 0x0000000000000001+-- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT' specifies that an image view /can/+-- be used as a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT               = FormatFeatureFlagBits2 0x0000000000000002+-- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image view+-- /can/ be used as storage image that supports atomic operations.+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT        = FormatFeatureFlagBits2 0x0000000000000004+-- | 'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT' specifies that the format+-- /can/ be used to create a buffer view that /can/ be bound to a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+-- descriptor.+pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT        = FormatFeatureFlagBits2 0x0000000000000008+-- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT' specifies that the format+-- /can/ be used to create a buffer view that /can/ be bound to a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+-- descriptor.+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT        = FormatFeatureFlagBits2 0x0000000000000010+-- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' specifies that atomic+-- operations are supported on+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+-- with this format.+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = FormatFeatureFlagBits2 0x0000000000000020+-- | 'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT' specifies that the format /can/ be+-- used as a vertex attribute format+-- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).+pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT               = FormatFeatureFlagBits2 0x0000000000000040+-- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT' specifies that an image view+-- /can/ be used as a framebuffer color attachment and as an input+-- attachment.+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT            = FormatFeatureFlagBits2 0x0000000000000080+-- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT' specifies that an image+-- view /can/ be used as a framebuffer color attachment that supports+-- blending and as an input attachment.+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT      = FormatFeatureFlagBits2 0x0000000000000100+-- | 'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that an image+-- view /can/ be used as a framebuffer depth\/stencil attachment and as an+-- input attachment.+pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT    = FormatFeatureFlagBits2 0x0000000000000200+-- | 'FORMAT_FEATURE_2_BLIT_SRC_BIT' specifies that an image /can/ be used as+-- @srcImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+pattern FORMAT_FEATURE_2_BLIT_SRC_BIT                    = FormatFeatureFlagBits2 0x0000000000000400+-- | 'FORMAT_FEATURE_2_BLIT_DST_BIT' specifies that an image /can/ be used as+-- @dstImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+pattern FORMAT_FEATURE_2_BLIT_DST_BIT                    = FormatFeatureFlagBits2 0x0000000000000800+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' is also set, an image view /can/ be+-- used with a sampler that has either of @magFilter@ or @minFilter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If+-- 'FORMAT_FEATURE_2_BLIT_SRC_BIT' is also set, an image can be used as the+-- @srcImage@ to 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@+-- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be+-- exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_2_BLIT_SRC_BIT'.+--+-- If the format being queried is a depth\/stencil format, this bit only+-- specifies that the depth aspect (not the stencil aspect) of an image of+-- this format supports linear filtering. Where depth comparison is+-- supported it /may/ be linear filtered whether this bit is present or+-- not, but where this bit is not present the filtered value /may/ be+-- computed in an implementation-dependent manner which differs from the+-- normal rules of linear filtering. The resulting value /must/ be in the+-- range [0,1] and /should/ be proportional to, or a weighted average of,+-- the number of comparison passes or failures.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = FormatFeatureFlagBits2 0x0000000000001000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT' specifies that+-- 'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has+-- either of @magFilter@ or @minFilter@ set to+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the+-- source image for a blit with @filter@ set to+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit+-- /must/ only be exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'. If the format being queried is a+-- depth\/stencil format, this only specifies that the depth aspect is+-- cubic filterable.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT  = FormatFeatureFlagBits2 0x0000000000002000+-- | 'FORMAT_FEATURE_2_TRANSFER_SRC_BIT' specifies that an image /can/ be+-- used as a source image for+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.+pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT                = FormatFeatureFlagBits2 0x0000000000004000+-- | 'FORMAT_FEATURE_2_TRANSFER_DST_BIT' specifies that an image /can/ be+-- used as a destination image for+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.+pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT                = FormatFeatureFlagBits2 0x0000000000008000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies+-- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with a+-- min or max+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'. This+-- bit /must/ only be exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = FormatFeatureFlagBits2 0x0000000000010000+-- | 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an+-- application /can/ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- using this format as a source, and that an image of this format /can/ be+-- used with a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'+-- @xChromaOffset@ and\/or @yChromaOffset@ of+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. Otherwise+-- both @xChromaOffset@ and @yChromaOffset@ /must/ be+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'. If a+-- format does not incorporate chroma downsampling (it is not a “422” or+-- “420” format) but the implementation supports sampler Y′CBCR conversion+-- for this format, the implementation /must/ set+-- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT'.+pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT     = FormatFeatureFlagBits2 0x0000000000020000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT'+-- specifies that an application /can/ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- using this format as a source with @chromaFilter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = FormatFeatureFlagBits2 0x0000000000040000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT'+-- specifies that the format can have different chroma, min, and mag+-- filters.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT =+  FormatFeatureFlagBits2 0x0000000000080000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'+-- specifies that reconstruction is explicit, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- If this bit is not present, reconstruction is implicit by default.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT =+  FormatFeatureFlagBits2 0x0000000000100000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'+-- specifies that reconstruction /can/ be forcibly made explicit by setting+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@+-- to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being queried+-- supports+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'+-- it /must/ also support+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT =+  FormatFeatureFlagBits2 0x0000000000200000+-- | 'FORMAT_FEATURE_2_DISJOINT_BIT' specifies that a multi-planar image+-- /can/ have the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' set+-- during image creation. An implementation /must/ not set+-- 'FORMAT_FEATURE_2_DISJOINT_BIT' for /single-plane formats/.+pattern FORMAT_FEATURE_2_DISJOINT_BIT                             = FormatFeatureFlagBits2 0x0000000000400000+-- | 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' specifies that an+-- application /can/ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- using this format as a source, and that an image of this format /can/ be+-- used with a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'+-- @xChromaOffset@ and\/or @yChromaOffset@ of+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.+-- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If+-- neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' nor+-- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the application+-- /must/ not define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- using this format as a source.+pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT               = FormatFeatureFlagBits2 0x0000000000800000+-- | 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that image+-- views created with this format /can/ be used as+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- for read operations without specifying a format.+pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT          = FormatFeatureFlagBits2 0x0000000080000000+-- | 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that image+-- views created with this format /can/ be used as+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- for write operations without specifying a format.+pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT         = FormatFeatureFlagBits2 0x0000000100000000+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' specifies that+-- image views created with this format /can/ be used for depth comparison+-- performed by @OpImage*Dref@ instructions.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT       = FormatFeatureFlagBits2 0x0000000200000000+-- | 'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the+-- format is supported as a renderable+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>.+-- This bit will be set for renderable color formats in the+-- @linearTilingFeatures@. This /must/ not be set in the+-- @optimalTilingFeatures@ or @bufferFeatures@ members.+pattern FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV           = FormatFeatureFlagBits2 0x0000004000000000+-- | 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies+-- that an image view /can/ be used as a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- An implementation /must/ not set this feature for formats with numeric+-- type other than @*UINT@, or set it as a buffer feature.+pattern FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits2 0x0000000040000000+-- | 'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image+-- view /can/ be used as a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+pattern FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT             = FormatFeatureFlagBits2 0x0000000001000000+-- | 'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+-- specifies that the format /can/ be used as the vertex format when+-- creating an+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@).+-- This format /can/ also be used as the vertex format in host memory when+-- doing+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- builds.+pattern FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits2 0x0000000020000000++conNameFormatFeatureFlagBits2 :: String+conNameFormatFeatureFlagBits2 = "FormatFeatureFlagBits2"++enumPrefixFormatFeatureFlagBits2 :: String+enumPrefixFormatFeatureFlagBits2 = "FORMAT_FEATURE_2_"++showTableFormatFeatureFlagBits2 :: [(FormatFeatureFlagBits2, String)]+showTableFormatFeatureFlagBits2 =+  [ (FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT              , "SAMPLED_IMAGE_BIT")+  , (FORMAT_FEATURE_2_STORAGE_IMAGE_BIT              , "STORAGE_IMAGE_BIT")+  , (FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT       , "STORAGE_IMAGE_ATOMIC_BIT")+  , (FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT       , "UNIFORM_TEXEL_BUFFER_BIT")+  , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT       , "STORAGE_TEXEL_BUFFER_BIT")+  , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT, "STORAGE_TEXEL_BUFFER_ATOMIC_BIT")+  , (FORMAT_FEATURE_2_VERTEX_BUFFER_BIT              , "VERTEX_BUFFER_BIT")+  , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT           , "COLOR_ATTACHMENT_BIT")+  , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT     , "COLOR_ATTACHMENT_BLEND_BIT")+  , (FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT   , "DEPTH_STENCIL_ATTACHMENT_BIT")+  , (FORMAT_FEATURE_2_BLIT_SRC_BIT                   , "BLIT_SRC_BIT")+  , (FORMAT_FEATURE_2_BLIT_DST_BIT                   , "BLIT_DST_BIT")+  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "SAMPLED_IMAGE_FILTER_LINEAR_BIT")+  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT , "SAMPLED_IMAGE_FILTER_CUBIC_BIT")+  , (FORMAT_FEATURE_2_TRANSFER_SRC_BIT               , "TRANSFER_SRC_BIT")+  , (FORMAT_FEATURE_2_TRANSFER_DST_BIT               , "TRANSFER_DST_BIT")+  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT, "SAMPLED_IMAGE_FILTER_MINMAX_BIT")+  , (FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT    , "MIDPOINT_CHROMA_SAMPLES_BIT")+  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+    , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"+    )+  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+    , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"+    )+  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+    , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"+    )+  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+    , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"+    )+  , (FORMAT_FEATURE_2_DISJOINT_BIT                            , "DISJOINT_BIT")+  , (FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT              , "COSITED_CHROMA_SAMPLES_BIT")+  , (FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT         , "STORAGE_READ_WITHOUT_FORMAT_BIT")+  , (FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT        , "STORAGE_WRITE_WITHOUT_FORMAT_BIT")+  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT      , "SAMPLED_IMAGE_DEPTH_COMPARISON_BIT")+  , (FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV          , "LINEAR_COLOR_ATTACHMENT_BIT_NV")+  , (FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")+  , (FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT            , "FRAGMENT_DENSITY_MAP_BIT_EXT")+  , (FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")+  ]++instance Show FormatFeatureFlagBits2 where+  showsPrec = enumShowsPrec enumPrefixFormatFeatureFlagBits2+                            showTableFormatFeatureFlagBits2+                            conNameFormatFeatureFlagBits2+                            (\(FormatFeatureFlagBits2 x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read FormatFeatureFlagBits2 where+  readPrec = enumReadPrec enumPrefixFormatFeatureFlagBits2+                          showTableFormatFeatureFlagBits2+                          conNameFormatFeatureFlagBits2+                          FormatFeatureFlagBits2+
+ src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "FormatFeatureFlags2"+module Vulkan.Core13.Enums.FormatFeatureFlags2  ( FormatFeatureFlags2+                                                , FormatFeatureFlagBits2+                                                ) where++++type FormatFeatureFlags2 = FormatFeatureFlagBits2++data FormatFeatureFlagBits2+
+ src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs view
@@ -0,0 +1,123 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineCreationFeedbackFlagBits"+module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits  ( pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT+                                                             , pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT+                                                             , pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT+                                                             , PipelineCreationFeedbackFlags+                                                             , PipelineCreationFeedbackFlagBits( PIPELINE_CREATION_FEEDBACK_VALID_BIT+                                                                                               , PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT+                                                                                               , PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT+                                                                                               , ..+                                                                                               )+                                                             ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"+pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = PIPELINE_CREATION_FEEDBACK_VALID_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"+pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"+pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT+++type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits++-- | VkPipelineCreationFeedbackFlagBits - Bitmask specifying pipeline or+-- pipeline stage creation feedback+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedback',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',+-- 'PipelineCreationFeedbackFlags'+newtype PipelineCreationFeedbackFlagBits = PipelineCreationFeedbackFlagBits Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT' indicates that the feedback+-- information is valid.+pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT                          = PipelineCreationFeedbackFlagBits 0x00000001+-- | 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'+-- indicates that a readily usable pipeline or pipeline stage was found in+-- the @pipelineCache@ specified by the application in the pipeline+-- creation command.+--+-- An implementation /should/ set the+-- 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT' bit if+-- it was able to avoid the large majority of pipeline or pipeline stage+-- creation work by using the @pipelineCache@ parameter of+-- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV', or+-- 'Vulkan.Core10.Pipeline.createComputePipelines'. When an implementation+-- sets this bit for the entire pipeline, it /may/ leave it unset for any+-- stage.+--+-- Note+--+-- Implementations are encouraged to provide a meaningful signal to+-- applications using this bit. The intention is to communicate to the+-- application that the pipeline or pipeline stage was created \"as fast as+-- it gets\" using the pipeline cache provided by the application. If an+-- implementation uses an internal cache, it is discouraged from setting+-- this bit as the feedback would be unactionable.+pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = PipelineCreationFeedbackFlagBits 0x00000002+-- | 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' indicates+-- that the base pipeline specified by the @basePipelineHandle@ or+-- @basePipelineIndex@ member of the @Vk*PipelineCreateInfo@ structure was+-- used to accelerate the creation of the pipeline.+--+-- An implementation /should/ set the+-- 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' bit if it+-- was able to avoid a significant amount of work by using the base+-- pipeline.+--+-- Note+--+-- While \"significant amount of work\" is subjective, implementations are+-- encouraged to provide a meaningful signal to applications using this+-- bit. For example, a 1% reduction in duration may not warrant setting+-- this bit, while a 50% reduction would.+pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT     = PipelineCreationFeedbackFlagBits 0x00000004++conNamePipelineCreationFeedbackFlagBits :: String+conNamePipelineCreationFeedbackFlagBits = "PipelineCreationFeedbackFlagBits"++enumPrefixPipelineCreationFeedbackFlagBits :: String+enumPrefixPipelineCreationFeedbackFlagBits = "PIPELINE_CREATION_FEEDBACK_"++showTablePipelineCreationFeedbackFlagBits :: [(PipelineCreationFeedbackFlagBits, String)]+showTablePipelineCreationFeedbackFlagBits =+  [ (PIPELINE_CREATION_FEEDBACK_VALID_BIT                         , "VALID_BIT")+  , (PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT, "APPLICATION_PIPELINE_CACHE_HIT_BIT")+  , (PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT    , "BASE_PIPELINE_ACCELERATION_BIT")+  ]++instance Show PipelineCreationFeedbackFlagBits where+  showsPrec = enumShowsPrec enumPrefixPipelineCreationFeedbackFlagBits+                            showTablePipelineCreationFeedbackFlagBits+                            conNamePipelineCreationFeedbackFlagBits+                            (\(PipelineCreationFeedbackFlagBits x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read PipelineCreationFeedbackFlagBits where+  readPrec = enumReadPrec enumPrefixPipelineCreationFeedbackFlagBits+                          showTablePipelineCreationFeedbackFlagBits+                          conNamePipelineCreationFeedbackFlagBits+                          PipelineCreationFeedbackFlagBits+
+ src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineCreationFeedbackFlagBits"+module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits  ( PipelineCreationFeedbackFlags+                                                             , PipelineCreationFeedbackFlagBits+                                                             ) where++++type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits++data PipelineCreationFeedbackFlagBits+
+ src/Vulkan/Core13/Enums/PipelineStageFlags2.hs view
@@ -0,0 +1,471 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineStageFlags2"+module Vulkan.Core13.Enums.PipelineStageFlags2  ( pattern PIPELINE_STAGE_2_NONE_KHR+                                                , pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_TRANSFER_BIT+                                                , pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_HOST_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_COPY_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_BLIT_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR+                                                , pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR+                                                , PipelineStageFlags2+                                                , PipelineStageFlagBits2( PIPELINE_STAGE_2_NONE+                                                                        , PIPELINE_STAGE_2_TOP_OF_PIPE_BIT+                                                                        , PIPELINE_STAGE_2_DRAW_INDIRECT_BIT+                                                                        , PIPELINE_STAGE_2_VERTEX_INPUT_BIT+                                                                        , PIPELINE_STAGE_2_VERTEX_SHADER_BIT+                                                                        , PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT+                                                                        , PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT+                                                                        , PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT+                                                                        , PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT+                                                                        , PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT+                                                                        , PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT+                                                                        , PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT+                                                                        , PIPELINE_STAGE_2_COMPUTE_SHADER_BIT+                                                                        , PIPELINE_STAGE_2_ALL_TRANSFER_BIT+                                                                        , PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT+                                                                        , PIPELINE_STAGE_2_HOST_BIT+                                                                        , PIPELINE_STAGE_2_ALL_GRAPHICS_BIT+                                                                        , PIPELINE_STAGE_2_ALL_COMMANDS_BIT+                                                                        , PIPELINE_STAGE_2_COPY_BIT+                                                                        , PIPELINE_STAGE_2_RESOLVE_BIT+                                                                        , PIPELINE_STAGE_2_BLIT_BIT+                                                                        , PIPELINE_STAGE_2_CLEAR_BIT+                                                                        , PIPELINE_STAGE_2_INDEX_INPUT_BIT+                                                                        , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT+                                                                        , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT+                                                                        , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI+                                                                        , PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI+                                                                        , PIPELINE_STAGE_2_MESH_SHADER_BIT_NV+                                                                        , PIPELINE_STAGE_2_TASK_SHADER_BIT_NV+                                                                        , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT+                                                                        , PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR+                                                                        , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR+                                                                        , PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+                                                                        , PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV+                                                                        , PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT+                                                                        , PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT+                                                                        , ..+                                                                        )+                                                ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags64)+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_NONE_KHR"+pattern PIPELINE_STAGE_2_NONE_KHR = PIPELINE_STAGE_2_NONE+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR"+pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = PIPELINE_STAGE_2_TOP_OF_PIPE_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR"+pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = PIPELINE_STAGE_2_DRAW_INDIRECT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = PIPELINE_STAGE_2_VERTEX_INPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = PIPELINE_STAGE_2_VERTEX_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR"+pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR"+pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = PIPELINE_STAGE_2_COMPUTE_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR"+pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT"+pattern PIPELINE_STAGE_2_TRANSFER_BIT = PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR"+pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_TRANSFER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR"+pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_HOST_BIT_KHR"+pattern PIPELINE_STAGE_2_HOST_BIT_KHR = PIPELINE_STAGE_2_HOST_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR"+pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PIPELINE_STAGE_2_ALL_GRAPHICS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR"+pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = PIPELINE_STAGE_2_ALL_COMMANDS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COPY_BIT_KHR"+pattern PIPELINE_STAGE_2_COPY_BIT_KHR = PIPELINE_STAGE_2_COPY_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR"+pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR = PIPELINE_STAGE_2_RESOLVE_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BLIT_BIT_KHR"+pattern PIPELINE_STAGE_2_BLIT_BIT_KHR = PIPELINE_STAGE_2_BLIT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR"+pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR = PIPELINE_STAGE_2_CLEAR_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = PIPELINE_STAGE_2_INDEX_INPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR"+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT+++type PipelineStageFlags2 = PipelineStageFlagBits2++-- | VkPipelineStageFlagBits2 - Pipeline stage flags for+-- VkPipelineStageFlags2+--+-- = Description+--+-- Note+--+-- The @TOP@ and @BOTTOM@ pipeline stages are deprecated, and applications+-- should prefer 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' and+-- 'PIPELINE_STAGE_2_NONE'.+--+-- Note+--+-- The 'PipelineStageFlags2' bitmask goes beyond the 31 individual bit+-- flags allowable within a C99 enum, which is how+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' is+-- defined. The first 31 values are common to both, and are+-- interchangeable.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>+newtype PipelineStageFlagBits2 = PipelineStageFlagBits2 Flags64+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PIPELINE_STAGE_2_NONE' specifies no stages of execution.+pattern PIPELINE_STAGE_2_NONE                               = PipelineStageFlagBits2 0x0000000000000000+-- | 'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT' is equivalent to+-- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' with+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' set to @0@ when+-- specified in the second synchronization scope, but equivalent to+-- 'PIPELINE_STAGE_2_NONE' in the first scope.+pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT                    = PipelineStageFlagBits2 0x0000000000000001+-- | 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT' specifies the stage of the pipeline+-- where indirect command parameters are consumed. This stage also includes+-- reading commands written by+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.+pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT                  = PipelineStageFlagBits2 0x0000000000000002+-- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT' is equivalent to the logical OR of:+--+-- -   'PIPELINE_STAGE_2_INDEX_INPUT_BIT'+--+-- -   'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT'+pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT                   = PipelineStageFlagBits2 0x0000000000000004+-- | 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT' specifies the vertex shader stage.+pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT                  = PipelineStageFlagBits2 0x0000000000000008+-- | 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' specifies the+-- tessellation control shader stage.+pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT    = PipelineStageFlagBits2 0x0000000000000010+-- | 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' specifies the+-- tessellation evaluation shader stage.+pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000020+-- | 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' specifies the geometry shader+-- stage.+pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT                = PipelineStageFlagBits2 0x0000000000000040+-- | 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' specifies the fragment shader+-- stage.+pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT                = PipelineStageFlagBits2 0x0000000000000080+-- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the+-- pipeline where early fragment tests (depth and stencil tests before+-- fragment shading) are performed. This stage also includes+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>+-- for framebuffer attachments with a depth\/stencil format.+pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT           = PipelineStageFlagBits2 0x0000000000000100+-- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the+-- pipeline where late fragment tests (depth and stencil tests after+-- fragment shading) are performed. This stage also includes+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>+-- for framebuffer attachments with a depth\/stencil format.+pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT            = PipelineStageFlagBits2 0x0000000000000200+-- | 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' specifies the stage of+-- the pipeline after blending where the final color values are output from+-- the pipeline. This stage also includes+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>+-- and multisample resolve operations for framebuffer attachments with a+-- color or depth\/stencil format.+pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT        = PipelineStageFlagBits2 0x0000000000000400+-- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' specifies the compute shader+-- stage.+pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT                 = PipelineStageFlagBits2 0x0000000000000800+-- | 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT' is equivalent to specifying all of:+--+-- -   'PIPELINE_STAGE_2_COPY_BIT'+--+-- -   'PIPELINE_STAGE_2_BLIT_BIT'+--+-- -   'PIPELINE_STAGE_2_RESOLVE_BIT'+--+-- -   'PIPELINE_STAGE_2_CLEAR_BIT'+pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT                   = PipelineStageFlagBits2 0x0000000000001000+-- | 'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT' is equivalent to+-- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' with+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' set to @0@ when+-- specified in the first synchronization scope, but equivalent to+-- 'PIPELINE_STAGE_2_NONE' in the second scope.+pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT                 = PipelineStageFlagBits2 0x0000000000002000+-- | 'PIPELINE_STAGE_2_HOST_BIT' specifies a pseudo-stage indicating+-- execution on the host of reads\/writes of device memory. This stage is+-- not invoked by any commands recorded in a command buffer.+pattern PIPELINE_STAGE_2_HOST_BIT                           = PipelineStageFlagBits2 0x0000000000004000+-- | 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT' specifies the execution of all+-- graphics pipeline stages, and is equivalent to the logical OR of:+--+-- -   'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT'+--+-- -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   'PIPELINE_STAGE_2_VERTEX_INPUT_BIT'+--+-- -   'PIPELINE_STAGE_2_VERTEX_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'+--+-- -   'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'+--+-- -   'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--+-- -   'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT                   = PipelineStageFlagBits2 0x0000000000008000+-- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' specifies all operations performed+-- by all commands supported on the queue it is used with.+pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT                   = PipelineStageFlagBits2 0x0000000000010000+-- | 'PIPELINE_STAGE_2_COPY_BIT' specifies the execution of all+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>,+-- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.+pattern PIPELINE_STAGE_2_COPY_BIT                           = PipelineStageFlagBits2 0x0000000100000000+-- | 'PIPELINE_STAGE_2_RESOLVE_BIT' specifies the execution of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'.+pattern PIPELINE_STAGE_2_RESOLVE_BIT                        = PipelineStageFlagBits2 0x0000000200000000+-- | 'PIPELINE_STAGE_2_BLIT_BIT' specifies the execution of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.+pattern PIPELINE_STAGE_2_BLIT_BIT                           = PipelineStageFlagBits2 0x0000000400000000+-- | 'PIPELINE_STAGE_2_CLEAR_BIT' specifies the execution of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,+-- with the exception of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.+pattern PIPELINE_STAGE_2_CLEAR_BIT                          = PipelineStageFlagBits2 0x0000000800000000+-- | 'PIPELINE_STAGE_2_INDEX_INPUT_BIT' specifies the stage of the pipeline+-- where index buffers are consumed.+pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT                    = PipelineStageFlagBits2 0x0000001000000000+-- | 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT' specifies the stage of the+-- pipeline where vertex buffers are consumed.+pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT         = PipelineStageFlagBits2 0x0000002000000000+-- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT' is equivalent to+-- specifying all supported+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>:+--+-- -   'PIPELINE_STAGE_2_VERTEX_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT      = PipelineStageFlagBits2 0x0000004000000000+-- | 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' specifies the stage of the+-- pipeline where the invocation mask image is read by the implementation+-- to optimize the ray dispatch.+pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI         = PipelineStageFlagBits2 0x0000010000000000+-- | 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' specifies the subpass+-- shading shader stage.+pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI         = PipelineStageFlagBits2 0x0000008000000000+-- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage.+pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                 = PipelineStageFlagBits2 0x0000000000100000+-- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.+pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                 = PipelineStageFlagBits2 0x0000000000080000+-- | 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage+-- of the pipeline where the fragment density map is read to+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.+pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT   = PipelineStageFlagBits2 0x0000000000800000+-- | 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of+-- the ray tracing shader stages.+pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR         = PipelineStageFlagBits2 0x0000000000200000+-- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the+-- execution of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>.+pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits2 0x0000000002000000+-- | 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies+-- the stage of the pipeline where the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- is read to determine the fragment shading rate for portions of a+-- rasterized primitive.+pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2 0x0000000000400000+-- | 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the+-- pipeline where device-side generation of commands via+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'+-- is handled.+pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV          = PipelineStageFlagBits2 0x0000000000020000+-- | 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of+-- the pipeline where the predicate of conditional rendering is consumed.+pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT      = PipelineStageFlagBits2 0x0000000000040000+-- | 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the+-- pipeline where vertex attribute output values are written to the+-- transform feedback buffers.+pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT         = PipelineStageFlagBits2 0x0000000001000000++conNamePipelineStageFlagBits2 :: String+conNamePipelineStageFlagBits2 = "PipelineStageFlagBits2"++enumPrefixPipelineStageFlagBits2 :: String+enumPrefixPipelineStageFlagBits2 = "PIPELINE_STAGE_2_"++showTablePipelineStageFlagBits2 :: [(PipelineStageFlagBits2, String)]+showTablePipelineStageFlagBits2 =+  [ (PIPELINE_STAGE_2_NONE                              , "NONE")+  , (PIPELINE_STAGE_2_TOP_OF_PIPE_BIT                   , "TOP_OF_PIPE_BIT")+  , (PIPELINE_STAGE_2_DRAW_INDIRECT_BIT                 , "DRAW_INDIRECT_BIT")+  , (PIPELINE_STAGE_2_VERTEX_INPUT_BIT                  , "VERTEX_INPUT_BIT")+  , (PIPELINE_STAGE_2_VERTEX_SHADER_BIT                 , "VERTEX_SHADER_BIT")+  , (PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT   , "TESSELLATION_CONTROL_SHADER_BIT")+  , (PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT, "TESSELLATION_EVALUATION_SHADER_BIT")+  , (PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT               , "GEOMETRY_SHADER_BIT")+  , (PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT               , "FRAGMENT_SHADER_BIT")+  , (PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT          , "EARLY_FRAGMENT_TESTS_BIT")+  , (PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT           , "LATE_FRAGMENT_TESTS_BIT")+  , (PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT       , "COLOR_ATTACHMENT_OUTPUT_BIT")+  , (PIPELINE_STAGE_2_COMPUTE_SHADER_BIT                , "COMPUTE_SHADER_BIT")+  , (PIPELINE_STAGE_2_ALL_TRANSFER_BIT                  , "ALL_TRANSFER_BIT")+  , (PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT                , "BOTTOM_OF_PIPE_BIT")+  , (PIPELINE_STAGE_2_HOST_BIT                          , "HOST_BIT")+  , (PIPELINE_STAGE_2_ALL_GRAPHICS_BIT                  , "ALL_GRAPHICS_BIT")+  , (PIPELINE_STAGE_2_ALL_COMMANDS_BIT                  , "ALL_COMMANDS_BIT")+  , (PIPELINE_STAGE_2_COPY_BIT                          , "COPY_BIT")+  , (PIPELINE_STAGE_2_RESOLVE_BIT                       , "RESOLVE_BIT")+  , (PIPELINE_STAGE_2_BLIT_BIT                          , "BLIT_BIT")+  , (PIPELINE_STAGE_2_CLEAR_BIT                         , "CLEAR_BIT")+  , (PIPELINE_STAGE_2_INDEX_INPUT_BIT                   , "INDEX_INPUT_BIT")+  , (PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT        , "VERTEX_ATTRIBUTE_INPUT_BIT")+  , (PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT     , "PRE_RASTERIZATION_SHADERS_BIT")+  , (PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI        , "INVOCATION_MASK_BIT_HUAWEI")+  , (PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI        , "SUBPASS_SHADING_BIT_HUAWEI")+  , (PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                , "MESH_SHADER_BIT_NV")+  , (PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                , "TASK_SHADER_BIT_NV")+  , (PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT  , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")+  , (PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR        , "RAY_TRACING_SHADER_BIT_KHR")+  , (PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, "ACCELERATION_STRUCTURE_BUILD_BIT_KHR")+  , (PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")+  , (PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV         , "COMMAND_PREPROCESS_BIT_NV")+  , (PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT     , "CONDITIONAL_RENDERING_BIT_EXT")+  , (PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT        , "TRANSFORM_FEEDBACK_BIT_EXT")+  ]++instance Show PipelineStageFlagBits2 where+  showsPrec = enumShowsPrec enumPrefixPipelineStageFlagBits2+                            showTablePipelineStageFlagBits2+                            conNamePipelineStageFlagBits2+                            (\(PipelineStageFlagBits2 x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read PipelineStageFlagBits2 where+  readPrec = enumReadPrec enumPrefixPipelineStageFlagBits2+                          showTablePipelineStageFlagBits2+                          conNamePipelineStageFlagBits2+                          PipelineStageFlagBits2+
+ src/Vulkan/Core13/Enums/PipelineStageFlags2.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineStageFlags2"+module Vulkan.Core13.Enums.PipelineStageFlags2  ( PipelineStageFlags2+                                                , PipelineStageFlagBits2+                                                ) where++++type PipelineStageFlags2 = PipelineStageFlagBits2++data PipelineStageFlagBits2+
+ src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlagBits.hs view
@@ -0,0 +1,54 @@+{-# language CPP #-}+-- No documentation found for Chapter "PrivateDataSlotCreateFlagBits"+module Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits  ( PrivateDataSlotCreateFlags+                                                          , PrivateDataSlotCreateFlagBits(..)+                                                          ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+type PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlagBits++-- | VkPrivateDataSlotCreateFlagBits - Bitmask specifying additional+-- parameters for private data slot creation+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'PrivateDataSlotCreateFlags'+newtype PrivateDataSlotCreateFlagBits = PrivateDataSlotCreateFlagBits Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++++conNamePrivateDataSlotCreateFlagBits :: String+conNamePrivateDataSlotCreateFlagBits = "PrivateDataSlotCreateFlagBits"++enumPrefixPrivateDataSlotCreateFlagBits :: String+enumPrefixPrivateDataSlotCreateFlagBits = ""++showTablePrivateDataSlotCreateFlagBits :: [(PrivateDataSlotCreateFlagBits, String)]+showTablePrivateDataSlotCreateFlagBits = []++instance Show PrivateDataSlotCreateFlagBits where+  showsPrec = enumShowsPrec enumPrefixPrivateDataSlotCreateFlagBits+                            showTablePrivateDataSlotCreateFlagBits+                            conNamePrivateDataSlotCreateFlagBits+                            (\(PrivateDataSlotCreateFlagBits x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read PrivateDataSlotCreateFlagBits where+  readPrec = enumReadPrec enumPrefixPrivateDataSlotCreateFlagBits+                          showTablePrivateDataSlotCreateFlagBits+                          conNamePrivateDataSlotCreateFlagBits+                          PrivateDataSlotCreateFlagBits+
+ src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "PrivateDataSlotCreateFlagBits"+module Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits  ( PrivateDataSlotCreateFlags+                                                          , PrivateDataSlotCreateFlagBits+                                                          ) where++++type PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlagBits++data PrivateDataSlotCreateFlagBits+
+ src/Vulkan/Core13/Enums/RenderingFlagBits.hs view
@@ -0,0 +1,94 @@+{-# language CPP #-}+-- No documentation found for Chapter "RenderingFlagBits"+module Vulkan.Core13.Enums.RenderingFlagBits  ( pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR+                                              , pattern RENDERING_SUSPENDING_BIT_KHR+                                              , pattern RENDERING_RESUMING_BIT_KHR+                                              , RenderingFlags+                                              , RenderingFlagBits( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT+                                                                 , RENDERING_SUSPENDING_BIT+                                                                 , RENDERING_RESUMING_BIT+                                                                 , ..+                                                                 )+                                              ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"+pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT+++-- No documentation found for TopLevel "VK_RENDERING_SUSPENDING_BIT_KHR"+pattern RENDERING_SUSPENDING_BIT_KHR = RENDERING_SUSPENDING_BIT+++-- No documentation found for TopLevel "VK_RENDERING_RESUMING_BIT_KHR"+pattern RENDERING_RESUMING_BIT_KHR = RENDERING_RESUMING_BIT+++type RenderingFlags = RenderingFlagBits++-- | VkRenderingFlagBits - Bitmask specifying additional properties of a+-- dynamic render pass instance+--+-- = Description+--+-- The contents of @pRenderingInfo@ /must/ match between suspended render+-- pass instances and the render pass instances that resume them, other+-- than the presence or absence of the 'RENDERING_RESUMING_BIT',+-- 'RENDERING_SUSPENDING_BIT', and+-- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' flags. No action or+-- synchronization commands, or other render pass instances, are allowed+-- between suspending and resuming render pass instances.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'RenderingFlags'+newtype RenderingFlagBits = RenderingFlagBits Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' specifies that draw+-- calls for the render pass instance will be recorded in secondary command+-- buffers.+pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = RenderingFlagBits 0x00000001+-- | 'RENDERING_SUSPENDING_BIT' specifies that the render pass instance will+-- be suspended.+pattern RENDERING_SUSPENDING_BIT                         = RenderingFlagBits 0x00000002+-- | 'RENDERING_RESUMING_BIT' specifies that the render pass instance is+-- resuming an earlier suspended render pass instance.+pattern RENDERING_RESUMING_BIT                           = RenderingFlagBits 0x00000004++conNameRenderingFlagBits :: String+conNameRenderingFlagBits = "RenderingFlagBits"++enumPrefixRenderingFlagBits :: String+enumPrefixRenderingFlagBits = "RENDERING_"++showTableRenderingFlagBits :: [(RenderingFlagBits, String)]+showTableRenderingFlagBits =+  [ (RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, "CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT")+  , (RENDERING_SUSPENDING_BIT                        , "SUSPENDING_BIT")+  , (RENDERING_RESUMING_BIT                          , "RESUMING_BIT")+  ]++instance Show RenderingFlagBits where+  showsPrec = enumShowsPrec enumPrefixRenderingFlagBits+                            showTableRenderingFlagBits+                            conNameRenderingFlagBits+                            (\(RenderingFlagBits x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read RenderingFlagBits where+  readPrec =+    enumReadPrec enumPrefixRenderingFlagBits showTableRenderingFlagBits conNameRenderingFlagBits RenderingFlagBits+
+ src/Vulkan/Core13/Enums/RenderingFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "RenderingFlagBits"+module Vulkan.Core13.Enums.RenderingFlagBits  ( RenderingFlags+                                              , RenderingFlagBits+                                              ) where++++type RenderingFlags = RenderingFlagBits++data RenderingFlagBits+
+ src/Vulkan/Core13/Enums/SubmitFlagBits.hs view
@@ -0,0 +1,59 @@+{-# language CPP #-}+-- No documentation found for Chapter "SubmitFlagBits"+module Vulkan.Core13.Enums.SubmitFlagBits  ( pattern SUBMIT_PROTECTED_BIT_KHR+                                           , SubmitFlags+                                           , SubmitFlagBits( SUBMIT_PROTECTED_BIT+                                                           , ..+                                                           )+                                           ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_SUBMIT_PROTECTED_BIT_KHR"+pattern SUBMIT_PROTECTED_BIT_KHR = SUBMIT_PROTECTED_BIT+++type SubmitFlags = SubmitFlagBits++-- | VkSubmitFlagBits - Bitmask specifying behavior of a submission+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'SubmitFlags'+newtype SubmitFlagBits = SubmitFlagBits Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'SUBMIT_PROTECTED_BIT' specifies that this batch is a protected+-- submission.+pattern SUBMIT_PROTECTED_BIT = SubmitFlagBits 0x00000001++conNameSubmitFlagBits :: String+conNameSubmitFlagBits = "SubmitFlagBits"++enumPrefixSubmitFlagBits :: String+enumPrefixSubmitFlagBits = "SUBMIT_PROTECTED_BIT"++showTableSubmitFlagBits :: [(SubmitFlagBits, String)]+showTableSubmitFlagBits = [(SUBMIT_PROTECTED_BIT, "")]++instance Show SubmitFlagBits where+  showsPrec = enumShowsPrec enumPrefixSubmitFlagBits+                            showTableSubmitFlagBits+                            conNameSubmitFlagBits+                            (\(SubmitFlagBits x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read SubmitFlagBits where+  readPrec = enumReadPrec enumPrefixSubmitFlagBits showTableSubmitFlagBits conNameSubmitFlagBits SubmitFlagBits+
+ src/Vulkan/Core13/Enums/SubmitFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "SubmitFlagBits"+module Vulkan.Core13.Enums.SubmitFlagBits  ( SubmitFlags+                                           , SubmitFlagBits+                                           ) where++++type SubmitFlags = SubmitFlagBits++data SubmitFlagBits+
+ src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs view
@@ -0,0 +1,124 @@+{-# language CPP #-}+-- No documentation found for Chapter "ToolPurposeFlagBits"+module Vulkan.Core13.Enums.ToolPurposeFlagBits  ( pattern TOOL_PURPOSE_VALIDATION_BIT_EXT+                                                , pattern TOOL_PURPOSE_PROFILING_BIT_EXT+                                                , pattern TOOL_PURPOSE_TRACING_BIT_EXT+                                                , pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT+                                                , pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT+                                                , ToolPurposeFlags+                                                , ToolPurposeFlagBits( TOOL_PURPOSE_VALIDATION_BIT+                                                                     , TOOL_PURPOSE_PROFILING_BIT+                                                                     , TOOL_PURPOSE_TRACING_BIT+                                                                     , TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT+                                                                     , TOOL_PURPOSE_MODIFYING_FEATURES_BIT+                                                                     , TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT+                                                                     , TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT+                                                                     , ..+                                                                     )+                                                ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"+pattern TOOL_PURPOSE_VALIDATION_BIT_EXT = TOOL_PURPOSE_VALIDATION_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_PROFILING_BIT_EXT"+pattern TOOL_PURPOSE_PROFILING_BIT_EXT = TOOL_PURPOSE_PROFILING_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_TRACING_BIT_EXT"+pattern TOOL_PURPOSE_TRACING_BIT_EXT = TOOL_PURPOSE_TRACING_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"+pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"+pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = TOOL_PURPOSE_MODIFYING_FEATURES_BIT+++type ToolPurposeFlags = ToolPurposeFlagBits++-- | VkToolPurposeFlagBits - Bitmask specifying the purposes of an active+-- tool+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'ToolPurposeFlags'+newtype ToolPurposeFlagBits = ToolPurposeFlagBits Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'TOOL_PURPOSE_VALIDATION_BIT' specifies that the tool provides+-- validation of API usage.+pattern TOOL_PURPOSE_VALIDATION_BIT          = ToolPurposeFlagBits 0x00000001+-- | 'TOOL_PURPOSE_PROFILING_BIT' specifies that the tool provides profiling+-- of API usage.+pattern TOOL_PURPOSE_PROFILING_BIT           = ToolPurposeFlagBits 0x00000002+-- | 'TOOL_PURPOSE_TRACING_BIT' specifies that the tool is capturing data+-- about the application’s API usage, including anything from simple+-- logging to capturing data for later replay.+pattern TOOL_PURPOSE_TRACING_BIT             = ToolPurposeFlagBits 0x00000004+-- | 'TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT' specifies that the tool provides+-- additional API features\/extensions on top of the underlying+-- implementation.+pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = ToolPurposeFlagBits 0x00000008+-- | 'TOOL_PURPOSE_MODIFYING_FEATURES_BIT' specifies that the tool modifies+-- the API features\/limits\/extensions presented to the application.+pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT  = ToolPurposeFlagBits 0x00000010+-- | 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' specifies that the tool consumes+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-debug-markers debug markers>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-debug-annotation object debug annotation>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels queue labels>,+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels command buffer labels>+pattern TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT   = ToolPurposeFlagBits 0x00000040+-- | 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' specifies that the tool reports+-- additional information to the application via callbacks specified by+-- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT' or+-- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT'+pattern TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = ToolPurposeFlagBits 0x00000020++conNameToolPurposeFlagBits :: String+conNameToolPurposeFlagBits = "ToolPurposeFlagBits"++enumPrefixToolPurposeFlagBits :: String+enumPrefixToolPurposeFlagBits = "TOOL_PURPOSE_"++showTableToolPurposeFlagBits :: [(ToolPurposeFlagBits, String)]+showTableToolPurposeFlagBits =+  [ (TOOL_PURPOSE_VALIDATION_BIT         , "VALIDATION_BIT")+  , (TOOL_PURPOSE_PROFILING_BIT          , "PROFILING_BIT")+  , (TOOL_PURPOSE_TRACING_BIT            , "TRACING_BIT")+  , (TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT, "ADDITIONAL_FEATURES_BIT")+  , (TOOL_PURPOSE_MODIFYING_FEATURES_BIT , "MODIFYING_FEATURES_BIT")+  , (TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT  , "DEBUG_MARKERS_BIT_EXT")+  , (TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT, "DEBUG_REPORTING_BIT_EXT")+  ]++instance Show ToolPurposeFlagBits where+  showsPrec = enumShowsPrec enumPrefixToolPurposeFlagBits+                            showTableToolPurposeFlagBits+                            conNameToolPurposeFlagBits+                            (\(ToolPurposeFlagBits x) -> x)+                            (\x -> showString "0x" . showHex x)++instance Read ToolPurposeFlagBits where+  readPrec = enumReadPrec enumPrefixToolPurposeFlagBits+                          showTableToolPurposeFlagBits+                          conNameToolPurposeFlagBits+                          ToolPurposeFlagBits+
+ src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "ToolPurposeFlagBits"+module Vulkan.Core13.Enums.ToolPurposeFlagBits  ( ToolPurposeFlags+                                                , ToolPurposeFlagBits+                                                ) where++++type ToolPurposeFlags = ToolPurposeFlagBits++data ToolPurposeFlagBits+
+ src/Vulkan/Core13/Handles.hs view
@@ -0,0 +1,57 @@+{-# language CPP #-}+-- No documentation found for Chapter "Handles"+module Vulkan.Core13.Handles  ( PrivateDataSlot(..)+                              , PhysicalDevice(..)+                              , Device(..)+                              , Queue(..)+                              , CommandBuffer(..)+                              , Buffer(..)+                              , Image(..)+                              , ImageView(..)+                              , Fence(..)+                              , Semaphore(..)+                              , Event(..)+                              , QueryPool(..)+                              ) where++import GHC.Show (showParen)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Foreign.Storable (Storable)+import Data.Word (Word64)+import Vulkan.Core10.APIConstants (HasObjectType(..))+import Vulkan.Core10.APIConstants (IsHandle)+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT))+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Event(..))+import Vulkan.Core10.Handles (Fence(..))+import Vulkan.Core10.Handles (Image(..))+import Vulkan.Core10.Handles (ImageView(..))+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (QueryPool(..))+import Vulkan.Core10.Handles (Queue(..))+import Vulkan.Core10.Handles (Semaphore(..))+-- | VkPrivateDataSlot - Opaque handle to a private data slot object+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',+-- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot',+-- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData',+-- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData',+-- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT'+newtype PrivateDataSlot = PrivateDataSlot Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType PrivateDataSlot where+  objectTypeAndHandle (PrivateDataSlot h) = (OBJECT_TYPE_PRIVATE_DATA_SLOT, h)+instance Show PrivateDataSlot where+  showsPrec p (PrivateDataSlot x) = showParen (p >= 11) (showString "PrivateDataSlot 0x" . showHex x)+
+ src/Vulkan/Core13/Handles.hs-boot view
@@ -0,0 +1,8 @@+{-# language CPP #-}+-- No documentation found for Chapter "Handles"+module Vulkan.Core13.Handles  (PrivateDataSlot) where++++data PrivateDataSlot+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs view
@@ -0,0 +1,1294 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_extended_dynamic_state"+module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state  ( cmdSetCullMode+                                                                  , cmdSetFrontFace+                                                                  , cmdSetPrimitiveTopology+                                                                  , cmdSetViewportWithCount+                                                                  , cmdSetScissorWithCount+                                                                  , cmdBindVertexBuffers2+                                                                  , cmdSetDepthTestEnable+                                                                  , cmdSetDepthWriteEnable+                                                                  , cmdSetDepthCompareOp+                                                                  , cmdSetDepthBoundsTestEnable+                                                                  , cmdSetStencilTestEnable+                                                                  , cmdSetStencilOp+                                                                  , DynamicState(..)+                                                                  ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import qualified Data.Vector (null)+import Control.Monad.IO.Class (MonadIO)+import Foreign.Storable (Storable(poke))+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (Buffer(..))+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.Enums.CompareOp (CompareOp)+import Vulkan.Core10.Enums.CompareOp (CompareOp(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindVertexBuffers2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCullMode))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBoundsTestEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthCompareOp))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthTestEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthWriteEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFrontFace))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveTopology))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetScissorWithCount))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilOp))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilTestEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWithCount))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.FrontFace (FrontFace)+import Vulkan.Core10.Enums.FrontFace (FrontFace(..))+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlagBits(..))+import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlags)+import Vulkan.Core10.Enums.StencilOp (StencilOp)+import Vulkan.Core10.Enums.StencilOp (StencilOp(..))+import Vulkan.Core10.Pipeline (Viewport)+import Vulkan.Core10.Enums.DynamicState (DynamicState(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCullMode+  :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ()) -> Ptr CommandBuffer_T -> CullModeFlags -> IO ()++-- | vkCmdSetCullMode - Set cull mode dynamically for a command buffer+--+-- = Description+--+-- This command sets the cull mode for subsequent drawing commands when the+-- graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@cullMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCullMode-None-03384# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCullMode-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCullMode-cullMode-parameter# @cullMode@ /must/ be a+--     valid combination of+--     'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values+--+-- -   #VUID-vkCmdSetCullMode-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-vkCmdSetCullMode-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags'+cmdSetCullMode :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command will be+                  -- recorded.+                  CommandBuffer+               -> -- | @cullMode@ specifies the cull mode property to use for drawing.+                  CullModeFlags+               -> io ()+cmdSetCullMode commandBuffer cullMode = liftIO $ do+  let vkCmdSetCullModePtr = pVkCmdSetCullMode (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetCullModePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCullMode is null" Nothing Nothing+  let vkCmdSetCullMode' = mkVkCmdSetCullMode vkCmdSetCullModePtr+  traceAroundEvent "vkCmdSetCullMode" (vkCmdSetCullMode' (commandBufferHandle (commandBuffer)) (cullMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetFrontFace+  :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ()) -> Ptr CommandBuffer_T -> FrontFace -> IO ()++-- | vkCmdSetFrontFace - Set front face orientation dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the front face orientation for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@frontFace@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetFrontFace-None-03383# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetFrontFace-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetFrontFace-frontFace-parameter# @frontFace@ /must/ be a+--     valid 'Vulkan.Core10.Enums.FrontFace.FrontFace' value+--+-- -   #VUID-vkCmdSetFrontFace-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-vkCmdSetFrontFace-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace'+cmdSetFrontFace :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command will be+                   -- recorded.+                   CommandBuffer+                -> -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value+                   -- specifying the front-facing triangle orientation to be used for culling.+                   FrontFace+                -> io ()+cmdSetFrontFace commandBuffer frontFace = liftIO $ do+  let vkCmdSetFrontFacePtr = pVkCmdSetFrontFace (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetFrontFacePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFrontFace is null" Nothing Nothing+  let vkCmdSetFrontFace' = mkVkCmdSetFrontFace vkCmdSetFrontFacePtr+  traceAroundEvent "vkCmdSetFrontFace" (vkCmdSetFrontFace' (commandBufferHandle (commandBuffer)) (frontFace))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetPrimitiveTopology+  :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) -> Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()++-- | vkCmdSetPrimitiveTopology - Set primitive topology state dynamically for+-- a command buffer+--+-- = Description+--+-- This command sets the primitive topology for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetPrimitiveTopology-None-03347# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter#+--     @primitiveTopology@ /must/ be a valid+--     'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value+--+-- -   #VUID-vkCmdSetPrimitiveTopology-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-vkCmdSetPrimitiveTopology-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology'+cmdSetPrimitiveTopology :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which the command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @primitiveTopology@ specifies the primitive topology to use for drawing.+                           PrimitiveTopology+                        -> io ()+cmdSetPrimitiveTopology commandBuffer primitiveTopology = liftIO $ do+  let vkCmdSetPrimitiveTopologyPtr = pVkCmdSetPrimitiveTopology (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetPrimitiveTopologyPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveTopology is null" Nothing Nothing+  let vkCmdSetPrimitiveTopology' = mkVkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopologyPtr+  traceAroundEvent "vkCmdSetPrimitiveTopology" (vkCmdSetPrimitiveTopology' (commandBufferHandle (commandBuffer)) (primitiveTopology))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetViewportWithCount+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()++-- | vkCmdSetViewportWithCount - Set the viewport count and viewports+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the viewport count and viewports state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- and @pViewports@ values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetViewportWithCount-None-03393# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetViewportWithCount-viewportCount-03394# @viewportCount@+--     /must/ be between @1@ and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- -   #VUID-vkCmdSetViewportWithCount-viewportCount-03395# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @viewportCount@ /must/ be @1@+--+-- -   #VUID-vkCmdSetViewportWithCount-commandBuffer-04819# @commandBuffer@+--     /must/ not have+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetViewportWithCount-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetViewportWithCount-pViewports-parameter# @pViewports@+--     /must/ be a valid pointer to an array of @viewportCount@ valid+--     'Vulkan.Core10.Pipeline.Viewport' structures+--+-- -   #VUID-vkCmdSetViewportWithCount-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-vkCmdSetViewportWithCount-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetViewportWithCount-viewportCount-arraylength#+--     @viewportCount@ /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#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'+cmdSetViewportWithCount :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which the command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @pViewports@ specifies the viewports to use for drawing.+                           ("viewports" ::: Vector Viewport)+                        -> io ()+cmdSetViewportWithCount commandBuffer viewports = liftIO . evalContT $ do+  let vkCmdSetViewportWithCountPtr = pVkCmdSetViewportWithCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetViewportWithCountPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWithCount is null" Nothing Nothing+  let vkCmdSetViewportWithCount' = mkVkCmdSetViewportWithCount vkCmdSetViewportWithCountPtr+  pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)+  lift $ traceAroundEvent "vkCmdSetViewportWithCount" (vkCmdSetViewportWithCount' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetScissorWithCount+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()++-- | vkCmdSetScissorWithCount - Set the scissor count and scissor rectangular+-- bounds dynamically for a command buffer+--+-- = Description+--+-- This command sets the scissor count and scissor rectangular bounds state+-- for subsequence drawing commands when the graphics pipeline is created+-- with 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- and @pScissors@ values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetScissorWithCount-None-03396# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetScissorWithCount-scissorCount-03397# @scissorCount@+--     /must/ be between @1@ and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- -   #VUID-vkCmdSetScissorWithCount-scissorCount-03398# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled, @scissorCount@ /must/ be @1@+--+-- -   #VUID-vkCmdSetScissorWithCount-x-03399# The @x@ and @y@ members of+--     @offset@ member of any element of @pScissors@ /must/ be greater than+--     or equal to @0@+--+-- -   #VUID-vkCmdSetScissorWithCount-offset-03400# Evaluation of+--     (@offset.x@ + @extent.width@) /must/ not cause a signed integer+--     addition overflow for any element of @pScissors@+--+-- -   #VUID-vkCmdSetScissorWithCount-offset-03401# Evaluation of+--     (@offset.y@ + @extent.height@) /must/ not cause a signed integer+--     addition overflow for any element of @pScissors@+--+-- -   #VUID-vkCmdSetScissorWithCount-commandBuffer-04820# @commandBuffer@+--     /must/ not have+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetScissorWithCount-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetScissorWithCount-pScissors-parameter# @pScissors@+--     /must/ be a valid pointer to an array of @scissorCount@+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- -   #VUID-vkCmdSetScissorWithCount-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-vkCmdSetScissorWithCount-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetScissorWithCount-scissorCount-arraylength#+--     @scissorCount@ /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#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D'+cmdSetScissorWithCount :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command will be+                          -- recorded.+                          CommandBuffer+                       -> -- | @pScissors@ specifies the scissors to use for drawing.+                          ("scissors" ::: Vector Rect2D)+                       -> io ()+cmdSetScissorWithCount commandBuffer scissors = liftIO . evalContT $ do+  let vkCmdSetScissorWithCountPtr = pVkCmdSetScissorWithCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetScissorWithCountPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissorWithCount is null" Nothing Nothing+  let vkCmdSetScissorWithCount' = mkVkCmdSetScissorWithCount vkCmdSetScissorWithCountPtr+  pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)+  lift $ traceAroundEvent "vkCmdSetScissorWithCount" (vkCmdSetScissorWithCount' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBindVertexBuffers2+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()++-- | vkCmdBindVertexBuffers2 - Bind vertex buffers to a command buffer and+-- dynamically set strides+--+-- = Description+--+-- The values taken from elements i of @pBuffers@ and @pOffsets@ replace+-- the current state for the vertex input binding @firstBinding@ + i, for i+-- in [0, @bindingCount@). The vertex input binding is updated to start at+-- the offset indicated by @pOffsets@[i] from the start of the buffer+-- @pBuffers@[i]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the+-- bound size of the vertex buffer starting from the corresponding elements+-- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that+-- use each of these bindings will use these updated addresses in their+-- address calculations for subsequent drawing commands. If the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is enabled, elements of @pBuffers@ /can/ be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the+-- vertex shader. If a vertex input attribute is bound to a vertex input+-- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values+-- taken from memory are considered to be zero, and missing G, B, or A+-- components are+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.+--+-- This command also \<pipelines-dynamic-state, dynamically sets>> the byte+-- strides between consecutive elements within buffer @pBuffers@[i] to the+-- corresponding @pStrides@[i] value when the graphics pipeline is created+-- with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, strides are specified by the+-- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ values+-- used to create the currently active pipeline.+--+-- If the bound pipeline state object was also created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /can/ be used instead of 'cmdBindVertexBuffers2' to set the stride.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBindVertexBuffers2-firstBinding-03355# @firstBinding@+--     /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-vkCmdBindVertexBuffers2-firstBinding-03356# The sum of+--     @firstBinding@ and @bindingCount@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-vkCmdBindVertexBuffers2-pOffsets-03357# All elements of+--     @pOffsets@ /must/ be less than the size of the corresponding element+--     in @pBuffers@+--+-- -   #VUID-vkCmdBindVertexBuffers2-pSizes-03358# If @pSizes@ is not+--     @NULL@, all elements of @pOffsets@ plus @pSizes@ /must/ be less than+--     or equal to the size of the corresponding element in @pBuffers@+--+-- -   #VUID-vkCmdBindVertexBuffers2-pBuffers-03359# All elements of+--     @pBuffers@ /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'+--     flag+--+-- -   #VUID-vkCmdBindVertexBuffers2-pBuffers-03360# Each element of+--     @pBuffers@ that is non-sparse /must/ be bound completely and+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBindVertexBuffers2-pBuffers-04111# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     feature is not enabled, all elements of @pBuffers@ /must/ not be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdBindVertexBuffers2-pBuffers-04112# If an element of+--     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     corresponding element of @pOffsets@ /must/ be zero+--+-- -   #VUID-vkCmdBindVertexBuffers2-pStrides-03362# If @pStrides@ is not+--     @NULL@ each element of @pStrides@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@+--+-- -   #VUID-vkCmdBindVertexBuffers2-pStrides-06209# If @pStrides@ is not+--     @NULL@ each element of @pStrides@ /must/ be either 0 or greater than+--     or equal to the maximum extent of all vertex input attributes+--     fetched from the corresponding binding, where the extent is+--     calculated as the+--     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@offset@+--     plus+--     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@+--     size+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBindVertexBuffers2-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBindVertexBuffers2-pBuffers-parameter# @pBuffers@ /must/+--     be a valid pointer to an array of @bindingCount@ valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--     'Vulkan.Core10.Handles.Buffer' handles+--+-- -   #VUID-vkCmdBindVertexBuffers2-pOffsets-parameter# @pOffsets@ /must/+--     be a valid pointer to an array of @bindingCount@+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   #VUID-vkCmdBindVertexBuffers2-pSizes-parameter# If @pSizes@ is not+--     @NULL@, @pSizes@ /must/ be a valid pointer to an array of+--     @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   #VUID-vkCmdBindVertexBuffers2-pStrides-parameter# If @pStrides@ is+--     not @NULL@, @pStrides@ /must/ be a valid pointer to an array of+--     @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- -   #VUID-vkCmdBindVertexBuffers2-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-vkCmdBindVertexBuffers2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength# If any of+--     @pSizes@, or @pStrides@ are not @NULL@, @bindingCount@ /must/ be+--     greater than @0@+--+-- -   #VUID-vkCmdBindVertexBuffers2-commonparent# Both of @commandBuffer@,+--     and the elements of @pBuffers@ that are valid handles of non-ignored+--     parameters /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdBindVertexBuffers2 :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer into which the command is+                         -- recorded.+                         CommandBuffer+                      -> -- | @firstBinding@ is the index of the first vertex input binding whose+                         -- state is updated by the command.+                         ("firstBinding" ::: Word32)+                      -> -- | @pBuffers@ is a pointer to an array of buffer handles.+                         ("buffers" ::: Vector Buffer)+                      -> -- | @pOffsets@ is a pointer to an array of buffer offsets.+                         ("offsets" ::: Vector DeviceSize)+                      -> -- | @pSizes@ is @NULL@ or a pointer to an array of the size in bytes of+                         -- vertex data bound from @pBuffers@.+                         ("sizes" ::: Vector DeviceSize)+                      -> -- | @pStrides@ is @NULL@ or a pointer to an array of buffer strides.+                         ("strides" ::: Vector DeviceSize)+                      -> io ()+cmdBindVertexBuffers2 commandBuffer firstBinding buffers offsets sizes strides = liftIO . evalContT $ do+  let vkCmdBindVertexBuffers2Ptr = pVkCmdBindVertexBuffers2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBindVertexBuffers2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers2 is null" Nothing Nothing+  let vkCmdBindVertexBuffers2' = mkVkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2Ptr+  let pBuffersLength = Data.Vector.length $ (buffers)+  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $+    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing+  let pSizesLength = Data.Vector.length $ (sizes)+  lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $+    throwIO $ IOError Nothing InvalidArgument "" "pSizes and pBuffers must have the same length" Nothing Nothing+  let pStridesLength = Data.Vector.length $ (strides)+  lift $ unless (fromIntegral pStridesLength == pBuffersLength || pStridesLength == 0) $+    throwIO $ IOError Nothing InvalidArgument "" "pStrides and pBuffers must have the same length" Nothing Nothing+  pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)+  pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)+  pSizes <- if Data.Vector.null (sizes)+    then pure nullPtr+    else do+      pPSizes <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (sizes))) * 8)+      lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))+      pure $ pPSizes+  pStrides <- if Data.Vector.null (strides)+    then pure nullPtr+    else do+      pPStrides <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (strides))) * 8)+      lift $ Data.Vector.imapM_ (\i e -> poke (pPStrides `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((strides))+      pure $ pPStrides+  lift $ traceAroundEvent "vkCmdBindVertexBuffers2" (vkCmdBindVertexBuffers2' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthTestEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthTestEnable - Set depth test enable dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth test enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthTestEnable-None-03352# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthTestEnable-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-vkCmdSetDepthTestEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthTestEnable :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer into which the command will be+                         -- recorded.+                         CommandBuffer+                      -> -- | @depthTestEnable@ specifies if the depth test is enabled.+                         ("depthTestEnable" ::: Bool)+                      -> io ()+cmdSetDepthTestEnable commandBuffer depthTestEnable = liftIO $ do+  let vkCmdSetDepthTestEnablePtr = pVkCmdSetDepthTestEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthTestEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthTestEnable is null" Nothing Nothing+  let vkCmdSetDepthTestEnable' = mkVkCmdSetDepthTestEnable vkCmdSetDepthTestEnablePtr+  traceAroundEvent "vkCmdSetDepthTestEnable" (vkCmdSetDepthTestEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthWriteEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthWriteEnable - Set depth write enable dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth write enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthWriteEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthWriteEnable-None-03354# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthWriteEnable-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-vkCmdSetDepthWriteEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthWriteEnable :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command will be+                          -- recorded.+                          CommandBuffer+                       -> -- | @depthWriteEnable@ specifies if depth writes are enabled.+                          ("depthWriteEnable" ::: Bool)+                       -> io ()+cmdSetDepthWriteEnable commandBuffer depthWriteEnable = liftIO $ do+  let vkCmdSetDepthWriteEnablePtr = pVkCmdSetDepthWriteEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthWriteEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthWriteEnable is null" Nothing Nothing+  let vkCmdSetDepthWriteEnable' = mkVkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnablePtr+  traceAroundEvent "vkCmdSetDepthWriteEnable" (vkCmdSetDepthWriteEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthCompareOp+  :: FunPtr (Ptr CommandBuffer_T -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> CompareOp -> IO ()++-- | vkCmdSetDepthCompareOp - Set depth comparison operator dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth comparison operator for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthCompareOp-None-03353# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameter#+--     @depthCompareOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- -   #VUID-vkCmdSetDepthCompareOp-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-vkCmdSetDepthCompareOp-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp'+cmdSetDepthCompareOp :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @depthCompareOp@ specifies the depth comparison operator.+                        ("depthCompareOp" ::: CompareOp)+                     -> io ()+cmdSetDepthCompareOp commandBuffer depthCompareOp = liftIO $ do+  let vkCmdSetDepthCompareOpPtr = pVkCmdSetDepthCompareOp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthCompareOpPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthCompareOp is null" Nothing Nothing+  let vkCmdSetDepthCompareOp' = mkVkCmdSetDepthCompareOp vkCmdSetDepthCompareOpPtr+  traceAroundEvent "vkCmdSetDepthCompareOp" (vkCmdSetDepthCompareOp' (commandBufferHandle (commandBuffer)) (depthCompareOp))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthBoundsTestEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthBoundsTestEnable - Set depth bounds test enable dynamically+-- for a command buffer+--+-- = Description+--+-- This command sets the depth bounds enable for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthBoundsTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthBoundsTestEnable-None-03349# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthBoundsTestEnable-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-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBoundsTestEnable :: forall io+                             . (MonadIO io)+                            => -- | @commandBuffer@ is the command buffer into which the command will be+                               -- recorded.+                               CommandBuffer+                            -> -- | @depthBoundsTestEnable@ specifies if the depth bounds test is enabled.+                               ("depthBoundsTestEnable" ::: Bool)+                            -> io ()+cmdSetDepthBoundsTestEnable commandBuffer depthBoundsTestEnable = liftIO $ do+  let vkCmdSetDepthBoundsTestEnablePtr = pVkCmdSetDepthBoundsTestEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthBoundsTestEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBoundsTestEnable is null" Nothing Nothing+  let vkCmdSetDepthBoundsTestEnable' = mkVkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnablePtr+  traceAroundEvent "vkCmdSetDepthBoundsTestEnable" (vkCmdSetDepthBoundsTestEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilTestEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetStencilTestEnable - Set stencil test enable dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil test enable for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetStencilTestEnable-None-03350# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetStencilTestEnable-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-vkCmdSetStencilTestEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetStencilTestEnable :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which the command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @stencilTestEnable@ specifies if the stencil test is enabled.+                           ("stencilTestEnable" ::: Bool)+                        -> io ()+cmdSetStencilTestEnable commandBuffer stencilTestEnable = liftIO $ do+  let vkCmdSetStencilTestEnablePtr = pVkCmdSetStencilTestEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetStencilTestEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilTestEnable is null" Nothing Nothing+  let vkCmdSetStencilTestEnable' = mkVkCmdSetStencilTestEnable vkCmdSetStencilTestEnablePtr+  traceAroundEvent "vkCmdSetStencilTestEnable" (vkCmdSetStencilTestEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetStencilOp+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()++-- | vkCmdSetStencilOp - Set stencil operation dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the stencil operation for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@failOp@,+-- @passOp@, @depthFailOp@, and @compareOp@ values used to create the+-- currently active pipeline, for both front and back faces.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetStencilOp-None-03351# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetStencilOp-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetStencilOp-faceMask-parameter# @faceMask@ /must/ be a+--     valid combination of+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- -   #VUID-vkCmdSetStencilOp-faceMask-requiredbitmask# @faceMask@ /must/+--     not be @0@+--+-- -   #VUID-vkCmdSetStencilOp-failOp-parameter# @failOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- -   #VUID-vkCmdSetStencilOp-passOp-parameter# @passOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- -   #VUID-vkCmdSetStencilOp-depthFailOp-parameter# @depthFailOp@ /must/+--     be a valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- -   #VUID-vkCmdSetStencilOp-compareOp-parameter# @compareOp@ /must/ be a+--     valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- -   #VUID-vkCmdSetStencilOp-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-vkCmdSetStencilOp-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags',+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp'+cmdSetStencilOp :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer into which the command will be+                   -- recorded.+                   CommandBuffer+                -> -- | @faceMask@ is a bitmask of+                   -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+                   -- the set of stencil state for which to update the stencil operation.+                   ("faceMask" ::: StencilFaceFlags)+                -> -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+                   -- the action performed on samples that fail the stencil test.+                   ("failOp" ::: StencilOp)+                -> -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+                   -- the action performed on samples that pass both the depth and stencil+                   -- tests.+                   ("passOp" ::: StencilOp)+                -> -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+                   -- specifying the action performed on samples that pass the stencil test+                   -- and fail the depth test.+                   ("depthFailOp" ::: StencilOp)+                -> -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+                   -- specifying the comparison operator used in the stencil test.+                   CompareOp+                -> io ()+cmdSetStencilOp commandBuffer faceMask failOp passOp depthFailOp compareOp = liftIO $ do+  let vkCmdSetStencilOpPtr = pVkCmdSetStencilOp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetStencilOpPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilOp is null" Nothing Nothing+  let vkCmdSetStencilOp' = mkVkCmdSetStencilOp vkCmdSetStencilOpPtr+  traceAroundEvent "vkCmdSetStencilOp" (vkCmdSetStencilOp' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp))+  pure $ ()+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs view
@@ -0,0 +1,280 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_extended_dynamic_state2"+module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2  ( cmdSetRasterizerDiscardEnable+                                                                   , cmdSetDepthBiasEnable+                                                                   , cmdSetPrimitiveRestartEnable+                                                                   , DynamicState(..)+                                                                   ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Control.Monad.IO.Class (MonadIO)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBiasEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveRestartEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizerDiscardEnable))+import Vulkan.Core10.Enums.DynamicState (DynamicState(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetRasterizerDiscardEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetRasterizerDiscardEnable - Control whether primitives are+-- discarded before the rasterization stage dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the discard enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnable-None-04871# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnable-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-vkCmdSetRasterizerDiscardEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetRasterizerDiscardEnable :: forall io+                               . (MonadIO io)+                              => -- | @commandBuffer@ is the command buffer into which the command will be+                                 -- recorded.+                                 CommandBuffer+                              -> -- | @rasterizerDiscardEnable@ controls whether primitives are discarded+                                 -- immediately before the rasterization stage.+                                 ("rasterizerDiscardEnable" ::: Bool)+                              -> io ()+cmdSetRasterizerDiscardEnable commandBuffer rasterizerDiscardEnable = liftIO $ do+  let vkCmdSetRasterizerDiscardEnablePtr = pVkCmdSetRasterizerDiscardEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetRasterizerDiscardEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizerDiscardEnable is null" Nothing Nothing+  let vkCmdSetRasterizerDiscardEnable' = mkVkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnablePtr+  traceAroundEvent "vkCmdSetRasterizerDiscardEnable" (vkCmdSetRasterizerDiscardEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (rasterizerDiscardEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthBiasEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthBiasEnable - Control whether to bias fragment depth values+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the depth bias enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthBiasEnable-None-04872# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthBiasEnable-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-vkCmdSetDepthBiasEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBiasEnable :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer into which the command will be+                         -- recorded.+                         CommandBuffer+                      -> -- | @depthBiasEnable@ controls whether to bias fragment depth values.+                         ("depthBiasEnable" ::: Bool)+                      -> io ()+cmdSetDepthBiasEnable commandBuffer depthBiasEnable = liftIO $ do+  let vkCmdSetDepthBiasEnablePtr = pVkCmdSetDepthBiasEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthBiasEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBiasEnable is null" Nothing Nothing+  let vkCmdSetDepthBiasEnable' = mkVkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnablePtr+  traceAroundEvent "vkCmdSetDepthBiasEnable" (vkCmdSetDepthBiasEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBiasEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetPrimitiveRestartEnable+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetPrimitiveRestartEnable - Set primitive assembly restart state+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the primitive restart enable for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnable-None-04866# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnable-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-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetPrimitiveRestartEnable :: forall io+                              . (MonadIO io)+                             => -- | @commandBuffer@ is the command buffer into which the command will be+                                -- recorded.+                                CommandBuffer+                             -> -- | @primitiveRestartEnable@ controls whether a special vertex index value+                                -- is treated as restarting the assembly of primitives. It behaves in the+                                -- same way as+                                -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@+                                ("primitiveRestartEnable" ::: Bool)+                             -> io ()+cmdSetPrimitiveRestartEnable commandBuffer primitiveRestartEnable = liftIO $ do+  let vkCmdSetPrimitiveRestartEnablePtr = pVkCmdSetPrimitiveRestartEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetPrimitiveRestartEnablePtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveRestartEnable is null" Nothing Nothing+  let vkCmdSetPrimitiveRestartEnable' = mkVkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnablePtr+  traceAroundEvent "vkCmdSetPrimitiveRestartEnable" (vkCmdSetPrimitiveRestartEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (primitiveRestartEnable)))+  pure $ ()+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs view
@@ -0,0 +1,103 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_image_robustness"+module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness  ( PhysicalDeviceImageRobustnessFeatures(..)+                                                            , StructureType(..)+                                                            ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceImageRobustnessFeatures - Structure describing the+-- out-of-bounds behavior for an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceImageRobustnessFeatures' 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. 'PhysicalDeviceImageRobustnessFeatures' /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_image_robustness VK_EXT_image_robustness>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImageRobustnessFeatures = PhysicalDeviceImageRobustnessFeatures+  { -- | #extension-features-robustImageAccess# @robustImageAccess@ indicates+    -- whether image accesses are tightly bounds-checked against the dimensions+    -- of the image view.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-input-validation Invalid texels>+    -- resulting from out of bounds image loads will be replaced as described+    -- in+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>,+    -- with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A+    -- components based on the format.+    robustImageAccess :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImageRobustnessFeatures)+#endif+deriving instance Show PhysicalDeviceImageRobustnessFeatures++instance ToCStruct PhysicalDeviceImageRobustnessFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceImageRobustnessFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceImageRobustnessFeatures where+  peekCStruct p = do+    robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceImageRobustnessFeatures+             (bool32ToBool robustImageAccess)++instance Storable PhysicalDeviceImageRobustnessFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImageRobustnessFeatures where+  zero = PhysicalDeviceImageRobustnessFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_image_robustness"+module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness  (PhysicalDeviceImageRobustnessFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceImageRobustnessFeatures++instance ToCStruct PhysicalDeviceImageRobustnessFeatures+instance Show PhysicalDeviceImageRobustnessFeatures++instance FromCStruct PhysicalDeviceImageRobustnessFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs view
@@ -0,0 +1,352 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_inline_uniform_block"+module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block  ( PhysicalDeviceInlineUniformBlockFeatures(..)+                                                                , PhysicalDeviceInlineUniformBlockProperties(..)+                                                                , WriteDescriptorSetInlineUniformBlock(..)+                                                                , DescriptorPoolInlineUniformBlockCreateInfo(..)+                                                                , DescriptorType(..)+                                                                , StructureType(..)+                                                                ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(..))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceInlineUniformBlockFeatures - Structure describing inline+-- uniform block features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceInlineUniformBlockFeatures' 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. 'PhysicalDeviceInlineUniformBlockFeatures' /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_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceInlineUniformBlockFeatures = PhysicalDeviceInlineUniformBlockFeatures+  { -- | #extension-features-inlineUniformBlock# @inlineUniformBlock@ indicates+    -- whether the implementation supports inline uniform block descriptors. If+    -- this feature is not enabled,+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+    -- /must/ not be used.+    inlineUniformBlock :: Bool+  , -- | #extension-features-descriptorBindingInlineUniformBlockUpdateAfterBind#+    -- @descriptorBindingInlineUniformBlockUpdateAfterBind@ indicates whether+    -- the implementation supports updating inline uniform block descriptors+    -- after a set is bound. If this feature is not enabled,+    -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+    -- /must/ not be used with+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'.+    descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInlineUniformBlockFeatures)+#endif+deriving instance Show PhysicalDeviceInlineUniformBlockFeatures++instance ToCStruct PhysicalDeviceInlineUniformBlockFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceInlineUniformBlockFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (inlineUniformBlock))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (descriptorBindingInlineUniformBlockUpdateAfterBind))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceInlineUniformBlockFeatures where+  peekCStruct p = do+    inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceInlineUniformBlockFeatures+             (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind)++instance Storable PhysicalDeviceInlineUniformBlockFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInlineUniformBlockFeatures where+  zero = PhysicalDeviceInlineUniformBlockFeatures+           zero+           zero+++-- | VkPhysicalDeviceInlineUniformBlockProperties - Structure describing+-- inline uniform block properties that can be supported by an+-- implementation+--+-- = Description+--+-- If the 'PhysicalDeviceInlineUniformBlockProperties' 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_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceInlineUniformBlockProperties = PhysicalDeviceInlineUniformBlockProperties+  { -- | #extension-limits-maxInlineUniformBlockSize# @maxInlineUniformBlockSize@+    -- is the maximum size in bytes of an+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>+    -- binding.+    maxInlineUniformBlockSize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockProperties" "maxPerStageDescriptorInlineUniformBlocks"+    maxPerStageDescriptorInlineUniformBlocks :: Word32+  , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#+    -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to+    -- @maxPerStageDescriptorInlineUniformBlocks@ but counts descriptor+    -- bindings from descriptor sets created with or without the+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+    -- bit set.+    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32+  , -- | #extension-limits-maxDescriptorSetInlineUniformBlocks#+    -- @maxDescriptorSetInlineUniformBlocks@ is the maximum number of inline+    -- uniform block bindings that /can/ be included in descriptor bindings in+    -- a pipeline layout across all pipeline shader stages and descriptor set+    -- numbers. Descriptor bindings with a descriptor type of+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+    -- count against this limit. Only descriptor bindings in descriptor set+    -- layouts created without the+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+    -- bit set count against this limit.+    maxDescriptorSetInlineUniformBlocks :: Word32+  , -- | #extension-limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks#+    -- @maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ is similar to+    -- @maxDescriptorSetInlineUniformBlocks@ but counts descriptor bindings+    -- from descriptor sets created with or without the+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+    -- bit set.+    maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInlineUniformBlockProperties)+#endif+deriving instance Show PhysicalDeviceInlineUniformBlockProperties++instance ToCStruct PhysicalDeviceInlineUniformBlockProperties where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceInlineUniformBlockProperties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockSize)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxPerStageDescriptorInlineUniformBlocks)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxDescriptorSetInlineUniformBlocks)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindInlineUniformBlocks)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceInlineUniformBlockProperties where+  peekCStruct p = do+    maxInlineUniformBlockSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    maxPerStageDescriptorInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    pure $ PhysicalDeviceInlineUniformBlockProperties+             maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks++instance Storable PhysicalDeviceInlineUniformBlockProperties where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInlineUniformBlockProperties where+  zero = PhysicalDeviceInlineUniformBlockProperties+           zero+           zero+           zero+           zero+           zero+++-- | VkWriteDescriptorSetInlineUniformBlock - Structure specifying inline+-- uniform block data+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data WriteDescriptorSetInlineUniformBlock = WriteDescriptorSetInlineUniformBlock+  { -- | @dataSize@ is the number of bytes of inline uniform block data pointed+    -- to by @pData@.+    --+    -- #VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222# @dataSize@+    -- /must/ be an integer multiple of @4@+    --+    -- #VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength#+    -- @dataSize@ /must/ be greater than @0@+    dataSize :: Word32+  , -- | @pData@ is a pointer to @dataSize@ number of bytes of data to write to+    -- the inline uniform block.+    --+    -- #VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter# @pData@+    -- /must/ be a valid pointer to an array of @dataSize@ bytes+    data' :: Ptr ()+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (WriteDescriptorSetInlineUniformBlock)+#endif+deriving instance Show WriteDescriptorSetInlineUniformBlock++instance ToCStruct WriteDescriptorSetInlineUniformBlock where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p WriteDescriptorSetInlineUniformBlock{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (dataSize)+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+    f++instance FromCStruct WriteDescriptorSetInlineUniformBlock where+  peekCStruct p = do+    dataSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+    pure $ WriteDescriptorSetInlineUniformBlock+             dataSize pData++instance Storable WriteDescriptorSetInlineUniformBlock where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero WriteDescriptorSetInlineUniformBlock where+  zero = WriteDescriptorSetInlineUniformBlock+           zero+           zero+++-- | VkDescriptorPoolInlineUniformBlockCreateInfo - Structure specifying the+-- maximum number of inline uniform block bindings of a newly created+-- descriptor pool+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DescriptorPoolInlineUniformBlockCreateInfo = DescriptorPoolInlineUniformBlockCreateInfo+  { -- | @maxInlineUniformBlockBindings@ is the number of inline uniform block+    -- bindings to allocate.+    maxInlineUniformBlockBindings :: Word32 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DescriptorPoolInlineUniformBlockCreateInfo)+#endif+deriving instance Show DescriptorPoolInlineUniformBlockCreateInfo++instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfo where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DescriptorPoolInlineUniformBlockCreateInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockBindings)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    f++instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfo where+  peekCStruct p = do+    maxInlineUniformBlockBindings <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pure $ DescriptorPoolInlineUniformBlockCreateInfo+             maxInlineUniformBlockBindings++instance Storable DescriptorPoolInlineUniformBlockCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DescriptorPoolInlineUniformBlockCreateInfo where+  zero = DescriptorPoolInlineUniformBlockCreateInfo+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs-boot view
@@ -0,0 +1,43 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_inline_uniform_block"+module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block  ( DescriptorPoolInlineUniformBlockCreateInfo+                                                                , PhysicalDeviceInlineUniformBlockFeatures+                                                                , PhysicalDeviceInlineUniformBlockProperties+                                                                , WriteDescriptorSetInlineUniformBlock+                                                                ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DescriptorPoolInlineUniformBlockCreateInfo++instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfo+instance Show DescriptorPoolInlineUniformBlockCreateInfo++instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfo+++data PhysicalDeviceInlineUniformBlockFeatures++instance ToCStruct PhysicalDeviceInlineUniformBlockFeatures+instance Show PhysicalDeviceInlineUniformBlockFeatures++instance FromCStruct PhysicalDeviceInlineUniformBlockFeatures+++data PhysicalDeviceInlineUniformBlockProperties++instance ToCStruct PhysicalDeviceInlineUniformBlockProperties+instance Show PhysicalDeviceInlineUniformBlockProperties++instance FromCStruct PhysicalDeviceInlineUniformBlockProperties+++data WriteDescriptorSetInlineUniformBlock++instance ToCStruct WriteDescriptorSetInlineUniformBlock+instance Show WriteDescriptorSetInlineUniformBlock++instance FromCStruct WriteDescriptorSetInlineUniformBlock+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs view
@@ -0,0 +1,120 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_cache_control"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control  ( PhysicalDevicePipelineCreationCacheControlFeatures(..)+                                                                           , PipelineCacheCreateFlagBits(..)+                                                                           , PipelineCacheCreateFlags+                                                                           , StructureType(..)+                                                                           , Result(..)+                                                                           , PipelineCreateFlagBits(..)+                                                                           , PipelineCreateFlags+                                                                           ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES))+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDevicePipelineCreationCacheControlFeatures - Structure+-- describing whether pipeline cache control can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePipelineCreationCacheControlFeatures' 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. 'PhysicalDevicePipelineCreationCacheControlFeatures' /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_pipeline_creation_cache_control VK_EXT_pipeline_creation_cache_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePipelineCreationCacheControlFeatures = PhysicalDevicePipelineCreationCacheControlFeatures+  { -- | #extension-features-pipelineCreationCacheControl#+    -- @pipelineCreationCacheControl@ indicates that the implementation+    -- supports:+    --+    -- -   The following /can/ be used in @Vk*PipelineCreateInfo@::@flags@:+    --+    --     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+    --+    --     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'+    --+    -- -   The following /can/ be used in+    --     'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo'::@flags@:+    --+    --     -   'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT'+    pipelineCreationCacheControl :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePipelineCreationCacheControlFeatures)+#endif+deriving instance Show PhysicalDevicePipelineCreationCacheControlFeatures++instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDevicePipelineCreationCacheControlFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineCreationCacheControl))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeatures where+  peekCStruct p = do+    pipelineCreationCacheControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDevicePipelineCreationCacheControlFeatures+             (bool32ToBool pipelineCreationCacheControl)++instance Storable PhysicalDevicePipelineCreationCacheControlFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePipelineCreationCacheControlFeatures where+  zero = PhysicalDevicePipelineCreationCacheControlFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_cache_control"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control  (PhysicalDevicePipelineCreationCacheControlFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePipelineCreationCacheControlFeatures++instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeatures+instance Show PhysicalDevicePipelineCreationCacheControlFeatures++instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs view
@@ -0,0 +1,243 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_feedback"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback  ( PipelineCreationFeedback(..)+                                                                      , PipelineCreationFeedbackCreateInfo(..)+                                                                      , StructureType(..)+                                                                      , PipelineCreationFeedbackFlagBits(..)+                                                                      , PipelineCreationFeedbackFlags+                                                                      ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Kind (Type)+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO))+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlagBits(..))+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPipelineCreationFeedback - Feedback about the creation of a pipeline+-- or pipeline stage+--+-- = Description+--+-- If the+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_VALID_BIT'+-- is not set in @flags@, an implementation /must/ not set any other bits+-- in @flags@, and the values of all other 'PipelineCreationFeedback' data+-- members are undefined.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'PipelineCreationFeedbackCreateInfo',+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlagBits',+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlags'+data PipelineCreationFeedback = PipelineCreationFeedback+  { -- | @flags@ is a bitmask of+    -- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlagBits'+    -- providing feedback about the creation of a pipeline or of a pipeline+    -- stage.+    flags :: PipelineCreationFeedbackFlags+  , -- | @duration@ is the duration spent creating a pipeline or pipeline stage+    -- in nanoseconds.+    duration :: Word64+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineCreationFeedback)+#endif+deriving instance Show PipelineCreationFeedback++instance ToCStruct PipelineCreationFeedback where+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineCreationFeedback{..} f = do+    poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlags)) (flags)+    poke ((p `plusPtr` 8 :: Ptr Word64)) (duration)+    f+  cStructSize = 16+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlags)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word64)) (zero)+    f++instance FromCStruct PipelineCreationFeedback where+  peekCStruct p = do+    flags <- peek @PipelineCreationFeedbackFlags ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlags))+    duration <- peek @Word64 ((p `plusPtr` 8 :: Ptr Word64))+    pure $ PipelineCreationFeedback+             flags duration++instance Storable PipelineCreationFeedback where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineCreationFeedback where+  zero = PipelineCreationFeedback+           zero+           zero+++-- | VkPipelineCreationFeedbackCreateInfo - Request for feedback about the+-- creation of a pipeline+--+-- = Description+--+-- An implementation /should/ write pipeline creation feedback to+-- @pPipelineCreationFeedback@ and /may/ write pipeline stage creation+-- feedback to @pPipelineStageCreationFeedbacks@. An implementation /must/+-- set or clear the+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_VALID_BIT'+-- in 'PipelineCreationFeedback'::@flags@ for @pPipelineCreationFeedback@+-- and every element of @pPipelineStageCreationFeedbacks@.+--+-- Note+--+-- One common scenario for an implementation to skip per-stage feedback is+-- when+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'+-- is set in @pPipelineCreationFeedback@.+--+-- When chained to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', or+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', the @i@ element of+-- @pPipelineStageCreationFeedbacks@ corresponds to the @i@ element of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@pStages@,+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@pStages@,+-- or 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@. When+-- chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', the first+-- element of @pPipelineStageCreationFeedbacks@ corresponds to+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'::@stage@.+--+-- == Valid Usage+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02668#+--     When chained to 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+--     'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+--     /must/ equal+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@stageCount@+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02669#+--     When chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+--     'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+--     /must/ equal 1+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02670#+--     When chained to+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+--     'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+--     /must/ equal+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@stageCount@+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02969#+--     When chained to+--     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+--     'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+--     /must/ equal+--     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@stageCount@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO'+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter#+--     @pPipelineCreationFeedback@ /must/ be a valid pointer to a+--     'PipelineCreationFeedback' structure+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter#+--     @pPipelineStageCreationFeedbacks@ /must/ be a valid pointer to an+--     array of @pipelineStageCreationFeedbackCount@+--     'PipelineCreationFeedback' structures+--+-- -   #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-arraylength#+--     @pipelineStageCreationFeedbackCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'PipelineCreationFeedback',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineCreationFeedbackCreateInfo = PipelineCreationFeedbackCreateInfo+  { -- | @pPipelineCreationFeedback@ is a pointer to a 'PipelineCreationFeedback'+    -- structure.+    pipelineCreationFeedback :: Ptr PipelineCreationFeedback+  , -- | @pipelineStageCreationFeedbackCount@ is the number of elements in+    -- @pPipelineStageCreationFeedbacks@.+    pipelineStageCreationFeedbackCount :: Word32+  , -- | @pPipelineStageCreationFeedbacks@ is a pointer to an array of+    -- @pipelineStageCreationFeedbackCount@ 'PipelineCreationFeedback'+    -- structures.+    pipelineStageCreationFeedbacks :: Ptr PipelineCreationFeedback+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineCreationFeedbackCreateInfo)+#endif+deriving instance Show PipelineCreationFeedbackCreateInfo++instance ToCStruct PipelineCreationFeedbackCreateInfo where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineCreationFeedbackCreateInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedback))) (pipelineCreationFeedback)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (pipelineStageCreationFeedbackCount)+    poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback))) (pipelineStageCreationFeedbacks)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedback))) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback))) (zero)+    f++instance FromCStruct PipelineCreationFeedbackCreateInfo where+  peekCStruct p = do+    pPipelineCreationFeedback <- peek @(Ptr PipelineCreationFeedback) ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedback)))+    pipelineStageCreationFeedbackCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    pPipelineStageCreationFeedbacks <- peek @(Ptr PipelineCreationFeedback) ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback)))+    pure $ PipelineCreationFeedbackCreateInfo+             pPipelineCreationFeedback pipelineStageCreationFeedbackCount pPipelineStageCreationFeedbacks++instance Storable PipelineCreationFeedbackCreateInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineCreationFeedbackCreateInfo where+  zero = PipelineCreationFeedbackCreateInfo+           zero+           zero+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs-boot view
@@ -0,0 +1,25 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_feedback"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback  ( PipelineCreationFeedback+                                                                      , PipelineCreationFeedbackCreateInfo+                                                                      ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PipelineCreationFeedback++instance ToCStruct PipelineCreationFeedback+instance Show PipelineCreationFeedback++instance FromCStruct PipelineCreationFeedback+++data PipelineCreationFeedbackCreateInfo++instance ToCStruct PipelineCreationFeedbackCreateInfo+instance Show PipelineCreationFeedbackCreateInfo++instance FromCStruct PipelineCreationFeedbackCreateInfo+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs view
@@ -0,0 +1,563 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_private_data"+module Vulkan.Core13.Promoted_From_VK_EXT_private_data  ( createPrivateDataSlot+                                                        , withPrivateDataSlot+                                                        , destroyPrivateDataSlot+                                                        , setPrivateData+                                                        , getPrivateData+                                                        , DevicePrivateDataCreateInfo(..)+                                                        , PrivateDataSlotCreateInfo(..)+                                                        , PhysicalDevicePrivateDataFeatures(..)+                                                        , PrivateDataSlot(..)+                                                        , StructureType(..)+                                                        , ObjectType(..)+                                                        , PrivateDataSlotCreateFlagBits(..)+                                                        , PrivateDataSlotCreateFlags+                                                        ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkCreatePrivateDataSlot))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyPrivateDataSlot))+import Vulkan.Dynamic (DeviceCmds(pVkGetPrivateData))+import Vulkan.Dynamic (DeviceCmds(pVkSetPrivateData))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core10.Enums.ObjectType (ObjectType)+import Vulkan.Core10.Enums.ObjectType (ObjectType(..))+import Vulkan.Core13.Handles (PrivateDataSlot)+import Vulkan.Core13.Handles (PrivateDataSlot(..))+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlags)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.ObjectType (ObjectType(..))+import Vulkan.Core13.Handles (PrivateDataSlot(..))+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlagBits(..))+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreatePrivateDataSlot+  :: FunPtr (Ptr Device_T -> Ptr PrivateDataSlotCreateInfo -> Ptr AllocationCallbacks -> Ptr PrivateDataSlot -> IO Result) -> Ptr Device_T -> Ptr PrivateDataSlotCreateInfo -> Ptr AllocationCallbacks -> Ptr PrivateDataSlot -> IO Result++-- | vkCreatePrivateDataSlot - Create a slot for private data storage+--+-- == Valid Usage+--+-- -   #VUID-vkCreatePrivateDataSlot-privateData-04564# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-privateData privateData>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCreatePrivateDataSlot-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCreatePrivateDataSlot-pCreateInfo-parameter# @pCreateInfo@+--     /must/ be a valid pointer to a valid 'PrivateDataSlotCreateInfo'+--     structure+--+-- -   #VUID-vkCreatePrivateDataSlot-pAllocator-parameter# If @pAllocator@+--     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter#+--     @pPrivateDataSlot@ /must/ be a valid pointer to a+--     'Vulkan.Core13.Handles.PrivateDataSlot' handle+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core13.Handles.PrivateDataSlot',+-- 'PrivateDataSlotCreateInfo'+createPrivateDataSlot :: forall io+                       . (MonadIO io)+                      => -- | @device@ is the logical device associated with the creation of the+                         -- object(s) holding the private data slot.+                         Device+                      -> -- | @pCreateInfo@ is a pointer to a 'PrivateDataSlotCreateInfo'+                         PrivateDataSlotCreateInfo+                      -> -- | @pAllocator@ controls host memory allocation as described in the+                         -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                         -- chapter.+                         ("allocator" ::: Maybe AllocationCallbacks)+                      -> io (PrivateDataSlot)+createPrivateDataSlot device createInfo allocator = liftIO . evalContT $ do+  let vkCreatePrivateDataSlotPtr = pVkCreatePrivateDataSlot (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCreatePrivateDataSlotPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreatePrivateDataSlot is null" Nothing Nothing+  let vkCreatePrivateDataSlot' = mkVkCreatePrivateDataSlot vkCreatePrivateDataSlotPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPPrivateDataSlot <- ContT $ bracket (callocBytes @PrivateDataSlot 8) free+  r <- lift $ traceAroundEvent "vkCreatePrivateDataSlot" (vkCreatePrivateDataSlot' (deviceHandle (device)) pCreateInfo pAllocator (pPPrivateDataSlot))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pPrivateDataSlot <- lift $ peek @PrivateDataSlot pPPrivateDataSlot+  pure $ (pPrivateDataSlot)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createPrivateDataSlot' and 'destroyPrivateDataSlot'+--+-- To ensure that 'destroyPrivateDataSlot' is always called: pass+-- 'Control.Exception.bracket' (or the allocate function from your+-- favourite resource management library) as the last argument.+-- To just extract the pair pass '(,)' as the last argument.+--+withPrivateDataSlot :: forall io r . MonadIO io => Device -> PrivateDataSlotCreateInfo -> Maybe AllocationCallbacks -> (io PrivateDataSlot -> (PrivateDataSlot -> io ()) -> r) -> r+withPrivateDataSlot device pCreateInfo pAllocator b =+  b (createPrivateDataSlot device pCreateInfo pAllocator)+    (\(o0) -> destroyPrivateDataSlot device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyPrivateDataSlot+  :: FunPtr (Ptr Device_T -> PrivateDataSlot -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> PrivateDataSlot -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyPrivateDataSlot - Destroy a private data slot+--+-- == Valid Usage+--+-- -   #VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062# If+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+--     provided when @privateDataSlot@ was created, a compatible set of+--     callbacks /must/ be provided here+--+-- -   #VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063# If no+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+--     provided when @privateDataSlot@ was created, @pAllocator@ /must/ be+--     @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkDestroyPrivateDataSlot-device-parameter# @device@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameter# If+--     @privateDataSlot@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @privateDataSlot@ /must/ be a valid+--     'Vulkan.Core13.Handles.PrivateDataSlot' handle+--+-- -   #VUID-vkDestroyPrivateDataSlot-pAllocator-parameter# If @pAllocator@+--     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkDestroyPrivateDataSlot-privateDataSlot-parent# If+--     @privateDataSlot@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @privateDataSlot@ /must/ be externally synchronized+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core13.Handles.PrivateDataSlot'+destroyPrivateDataSlot :: forall io+                        . (MonadIO io)+                       => -- | @device@ is the logical device associated with the creation of the+                          -- object(s) holding the private data slot.+                          Device+                       -> -- | @privateDataSlot@ is the private data slot to destroy.+                          PrivateDataSlot+                       -> -- | @pAllocator@ controls host memory allocation as described in the+                          -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                          -- chapter.+                          ("allocator" ::: Maybe AllocationCallbacks)+                       -> io ()+destroyPrivateDataSlot device privateDataSlot allocator = liftIO . evalContT $ do+  let vkDestroyPrivateDataSlotPtr = pVkDestroyPrivateDataSlot (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkDestroyPrivateDataSlotPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPrivateDataSlot is null" Nothing Nothing+  let vkDestroyPrivateDataSlot' = mkVkDestroyPrivateDataSlot vkDestroyPrivateDataSlotPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyPrivateDataSlot" (vkDestroyPrivateDataSlot' (deviceHandle (device)) (privateDataSlot) pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkSetPrivateData+  :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Word64 -> IO Result) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Word64 -> IO Result++-- | vkSetPrivateData - Associate data with a Vulkan object+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Enums.ObjectType.ObjectType',+-- 'Vulkan.Core13.Handles.PrivateDataSlot'+setPrivateData :: forall io+                . (MonadIO io)+               => -- | @device@ is the device that created the object.+                  --+                  -- #VUID-vkSetPrivateData-device-parameter# @device@ /must/ be a valid+                  -- 'Vulkan.Core10.Handles.Device' handle+                  Device+               -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying+                  -- the type of object to associate data with.+                  --+                  -- #VUID-vkSetPrivateData-objectType-parameter# @objectType@ /must/ be a+                  -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value+                  ObjectType+               -> -- | @objectHandle@ is a handle to the object to associate data with.+                  --+                  -- #VUID-vkSetPrivateData-objectHandle-04016# @objectHandle@ /must/ be+                  -- @device@ or a child of @device@+                  --+                  -- #VUID-vkSetPrivateData-objectHandle-04017# @objectHandle@ /must/ be a+                  -- valid handle to an object of type @objectType@+                  ("objectHandle" ::: Word64)+               -> -- | @privateDataSlot@ is a handle to a+                  -- 'Vulkan.Core13.Handles.PrivateDataSlot' specifying location of private+                  -- data storage.+                  --+                  -- #VUID-vkSetPrivateData-privateDataSlot-parameter# @privateDataSlot@+                  -- /must/ be a valid 'Vulkan.Core13.Handles.PrivateDataSlot' handle+                  --+                  -- #VUID-vkSetPrivateData-privateDataSlot-parent# @privateDataSlot@ /must/+                  -- have been created, allocated, or retrieved from @device@+                  PrivateDataSlot+               -> -- | @data@ is user defined data to associate the object with. This data will+                  -- be stored at @privateDataSlot@.+                  ("data" ::: Word64)+               -> io ()+setPrivateData device objectType objectHandle privateDataSlot data' = liftIO $ do+  let vkSetPrivateDataPtr = pVkSetPrivateData (case device of Device{deviceCmds} -> deviceCmds)+  unless (vkSetPrivateDataPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetPrivateData is null" Nothing Nothing+  let vkSetPrivateData' = mkVkSetPrivateData vkSetPrivateDataPtr+  r <- traceAroundEvent "vkSetPrivateData" (vkSetPrivateData' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (data'))+  when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPrivateData+  :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Ptr Word64 -> IO ()) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Ptr Word64 -> IO ()++-- | vkGetPrivateData - Retrieve data associated with a Vulkan object+--+-- = Description+--+-- Note+--+-- Due to platform details on Android, implementations might not be able to+-- reliably return @0@ from calls to 'getPrivateData' for+-- 'Vulkan.Extensions.Handles.SwapchainKHR' objects on which+-- 'setPrivateData' has not previously been called. This erratum is+-- exclusive to the Android platform and objects of type+-- 'Vulkan.Extensions.Handles.SwapchainKHR'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Enums.ObjectType.ObjectType',+-- 'Vulkan.Core13.Handles.PrivateDataSlot'+getPrivateData :: forall io+                . (MonadIO io)+               => -- | @device@ is the device that created the object+                  --+                  -- #VUID-vkGetPrivateData-device-parameter# @device@ /must/ be a valid+                  -- 'Vulkan.Core10.Handles.Device' handle+                  Device+               -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying+                  -- the type of object data is associated with.+                  --+                  -- #VUID-vkGetPrivateData-objectType-04018# @objectType@ /must/ be+                  -- 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_DEVICE', or an object type+                  -- whose parent is 'Vulkan.Core10.Handles.Device'+                  --+                  -- #VUID-vkGetPrivateData-objectType-parameter# @objectType@ /must/ be a+                  -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value+                  ObjectType+               -> -- | @objectHandle@ is a handle to the object data is associated with.+                  ("objectHandle" ::: Word64)+               -> -- | @privateDataSlot@ is a handle to a+                  -- 'Vulkan.Core13.Handles.PrivateDataSlot' specifying location of private+                  -- data pointer storage.+                  --+                  -- #VUID-vkGetPrivateData-privateDataSlot-parameter# @privateDataSlot@+                  -- /must/ be a valid 'Vulkan.Core13.Handles.PrivateDataSlot' handle+                  --+                  -- #VUID-vkGetPrivateData-privateDataSlot-parent# @privateDataSlot@ /must/+                  -- have been created, allocated, or retrieved from @device@+                  PrivateDataSlot+               -> io (("data" ::: Word64))+getPrivateData device objectType objectHandle privateDataSlot = liftIO . evalContT $ do+  let vkGetPrivateDataPtr = pVkGetPrivateData (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetPrivateDataPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPrivateData is null" Nothing Nothing+  let vkGetPrivateData' = mkVkGetPrivateData vkGetPrivateDataPtr+  pPData <- ContT $ bracket (callocBytes @Word64 8) free+  lift $ traceAroundEvent "vkGetPrivateData" (vkGetPrivateData' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (pPData))+  pData <- lift $ peek @Word64 pPData+  pure $ (pData)+++-- | VkDevicePrivateDataCreateInfo - Reserve private data slots+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DevicePrivateDataCreateInfo = DevicePrivateDataCreateInfo+  { -- | @privateDataSlotRequestCount@ is the amount of slots to reserve.+    privateDataSlotRequestCount :: Word32 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DevicePrivateDataCreateInfo)+#endif+deriving instance Show DevicePrivateDataCreateInfo++instance ToCStruct DevicePrivateDataCreateInfo where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DevicePrivateDataCreateInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (privateDataSlotRequestCount)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    f++instance FromCStruct DevicePrivateDataCreateInfo where+  peekCStruct p = do+    privateDataSlotRequestCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pure $ DevicePrivateDataCreateInfo+             privateDataSlotRequestCount++instance Storable DevicePrivateDataCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DevicePrivateDataCreateInfo where+  zero = DevicePrivateDataCreateInfo+           zero+++-- | VkPrivateDataSlotCreateInfo - Structure specifying the parameters of+-- private data slot construction+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits.PrivateDataSlotCreateFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createPrivateDataSlot',+-- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT'+data PrivateDataSlotCreateInfo = PrivateDataSlotCreateInfo+  { -- | @flags@ is a bitmask of+    -- 'Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits.PrivateDataSlotCreateFlags'+    -- specifying additional parameters of the new private data slot+    --+    -- #VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmask# @flags@ /must/ be+    -- @0@+    flags :: PrivateDataSlotCreateFlags }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PrivateDataSlotCreateInfo)+#endif+deriving instance Show PrivateDataSlotCreateInfo++instance ToCStruct PrivateDataSlotCreateInfo where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PrivateDataSlotCreateInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlags)) (flags)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlags)) (zero)+    f++instance FromCStruct PrivateDataSlotCreateInfo where+  peekCStruct p = do+    flags <- peek @PrivateDataSlotCreateFlags ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlags))+    pure $ PrivateDataSlotCreateInfo+             flags++instance Storable PrivateDataSlotCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PrivateDataSlotCreateInfo where+  zero = PrivateDataSlotCreateInfo+           zero+++-- | VkPhysicalDevicePrivateDataFeatures - Structure specifying physical+-- device support+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePrivateDataFeatures' 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. 'PhysicalDevicePrivateDataFeatures' /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_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePrivateDataFeatures = PhysicalDevicePrivateDataFeatures+  { -- | #extension-features-privateData# @privateData@ indicates whether the+    -- implementation supports private data. See+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#private-data Private Data>.+    privateData :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePrivateDataFeatures)+#endif+deriving instance Show PhysicalDevicePrivateDataFeatures++instance ToCStruct PhysicalDevicePrivateDataFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDevicePrivateDataFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (privateData))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDevicePrivateDataFeatures where+  peekCStruct p = do+    privateData <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDevicePrivateDataFeatures+             (bool32ToBool privateData)++instance Storable PhysicalDevicePrivateDataFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePrivateDataFeatures where+  zero = PhysicalDevicePrivateDataFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs-boot view
@@ -0,0 +1,34 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_private_data"+module Vulkan.Core13.Promoted_From_VK_EXT_private_data  ( DevicePrivateDataCreateInfo+                                                        , PhysicalDevicePrivateDataFeatures+                                                        , PrivateDataSlotCreateInfo+                                                        ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DevicePrivateDataCreateInfo++instance ToCStruct DevicePrivateDataCreateInfo+instance Show DevicePrivateDataCreateInfo++instance FromCStruct DevicePrivateDataCreateInfo+++data PhysicalDevicePrivateDataFeatures++instance ToCStruct PhysicalDevicePrivateDataFeatures+instance Show PhysicalDevicePrivateDataFeatures++instance FromCStruct PhysicalDevicePrivateDataFeatures+++data PrivateDataSlotCreateInfo++instance ToCStruct PrivateDataSlotCreateInfo+instance Show PrivateDataSlotCreateInfo++instance FromCStruct PrivateDataSlotCreateInfo+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs view
@@ -0,0 +1,99 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_shader_demote_to_helper_invocation"+module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation  ( PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..)+                                                                              , StructureType(..)+                                                                              ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - Structure+-- describing the shader demote to helper invocations features that can be+-- supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderDemoteToHelperInvocationFeatures' 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. 'PhysicalDeviceShaderDemoteToHelperInvocationFeatures' /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_shader_demote_to_helper_invocation VK_EXT_shader_demote_to_helper_invocation>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderDemoteToHelperInvocationFeatures = PhysicalDeviceShaderDemoteToHelperInvocationFeatures+  { -- | #extension-features-shaderDemoteToHelperInvocation#+    -- @shaderDemoteToHelperInvocation@ indicates whether the implementation+    -- supports the SPIR-V @DemoteToHelperInvocationEXT@ capability.+    shaderDemoteToHelperInvocation :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)+#endif+deriving instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeatures++instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceShaderDemoteToHelperInvocationFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderDemoteToHelperInvocation))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+  peekCStruct p = do+    shaderDemoteToHelperInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceShaderDemoteToHelperInvocationFeatures+             (bool32ToBool shaderDemoteToHelperInvocation)++instance Storable PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+  zero = PhysicalDeviceShaderDemoteToHelperInvocationFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_shader_demote_to_helper_invocation"+module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation  (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderDemoteToHelperInvocationFeatures++instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures+instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeatures++instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs view
@@ -0,0 +1,322 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_subgroup_size_control"+module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control  ( PhysicalDeviceSubgroupSizeControlFeatures(..)+                                                                 , PhysicalDeviceSubgroupSizeControlProperties(..)+                                                                 , PipelineShaderStageRequiredSubgroupSizeCreateInfo(..)+                                                                 , StructureType(..)+                                                                 , PipelineShaderStageCreateFlagBits(..)+                                                                 , PipelineShaderStageCreateFlags+                                                                 ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceSubgroupSizeControlFeatures - Structure describing the+-- subgroup size control features that can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceSubgroupSizeControlFeatures' 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. 'PhysicalDeviceSubgroupSizeControlFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- Note+--+-- The+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'+-- structure was added in version 2 of the @VK_EXT_subgroup_size_control@+-- extension. Version 1 implementations of this extension will not fill out+-- the features structure but applications may assume that both+-- @subgroupSizeControl@ and @computeFullSubgroups@ are supported if the+-- extension is supported. (See also the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements>+-- section.) Applications are advised to add a+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'+-- structure to the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features+-- regardless of the version of the extension supported by the+-- implementation. If the implementation only supports version 1, it will+-- safely ignore the+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'+-- structure.+--+-- Vulkan 1.3 implementations always support the features structure.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSubgroupSizeControlFeatures = PhysicalDeviceSubgroupSizeControlFeatures+  { -- | #extension-features-subgroupSizeControl# @subgroupSizeControl@ indicates+    -- whether the implementation supports controlling shader subgroup sizes+    -- via the+    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+    -- flag and the 'PipelineShaderStageRequiredSubgroupSizeCreateInfo'+    -- structure.+    subgroupSizeControl :: Bool+  , -- | #extension-features-computeFullSubgroups# @computeFullSubgroups@+    -- indicates whether the implementation supports requiring full subgroups+    -- in compute shaders via the+    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+    -- flag.+    computeFullSubgroups :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSubgroupSizeControlFeatures)+#endif+deriving instance Show PhysicalDeviceSubgroupSizeControlFeatures++instance ToCStruct PhysicalDeviceSubgroupSizeControlFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceSubgroupSizeControlFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (subgroupSizeControl))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (computeFullSubgroups))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceSubgroupSizeControlFeatures where+  peekCStruct p = do+    subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceSubgroupSizeControlFeatures+             (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups)++instance Storable PhysicalDeviceSubgroupSizeControlFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSubgroupSizeControlFeatures where+  zero = PhysicalDeviceSubgroupSizeControlFeatures+           zero+           zero+++-- | VkPhysicalDeviceSubgroupSizeControlProperties - Structure describing the+-- control subgroup size properties of an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceSubgroupSizeControlProperties' 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.+--+-- If+-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedOperations@+-- includes+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroup-quad >,+-- @minSubgroupSize@ /must/ be greater than or equal to 4.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSubgroupSizeControlProperties = PhysicalDeviceSubgroupSizeControlProperties+  { -- | #extension-limits-minSubgroupSize# @minSubgroupSize@ is the minimum+    -- subgroup size supported by this device. @minSubgroupSize@ is at least+    -- one if any of the physical device’s queues support+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @minSubgroupSize@+    -- is a power-of-two. @minSubgroupSize@ is less than or equal to+    -- @maxSubgroupSize@. @minSubgroupSize@ is less than or equal to+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+    minSubgroupSize :: Word32+  , -- | #extension-limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum+    -- subgroup size supported by this device. @maxSubgroupSize@ is at least+    -- one if any of the physical device’s queues support+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @maxSubgroupSize@+    -- is a power-of-two. @maxSubgroupSize@ is greater than or equal to+    -- @minSubgroupSize@. @maxSubgroupSize@ is greater than or equal to+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+    maxSubgroupSize :: Word32+  , -- | #extension-limits-maxComputeWorkgroupSubgroups#+    -- @maxComputeWorkgroupSubgroups@ is the maximum number of subgroups+    -- supported by the implementation within a workgroup.+    maxComputeWorkgroupSubgroups :: Word32+  , -- | #extension-limits-requiredSubgroupSizeStages#+    -- @requiredSubgroupSizeStages@ is a bitfield of what shader stages support+    -- having a required subgroup size specified.+    requiredSubgroupSizeStages :: ShaderStageFlags+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSubgroupSizeControlProperties)+#endif+deriving instance Show PhysicalDeviceSubgroupSizeControlProperties++instance ToCStruct PhysicalDeviceSubgroupSizeControlProperties where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceSubgroupSizeControlProperties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (minSubgroupSize)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxSubgroupSize)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxComputeWorkgroupSubgroups)+    poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (requiredSubgroupSizeStages)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (zero)+    f++instance FromCStruct PhysicalDeviceSubgroupSizeControlProperties where+  peekCStruct p = do+    minSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    maxSubgroupSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))+    pure $ PhysicalDeviceSubgroupSizeControlProperties+             minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages++instance Storable PhysicalDeviceSubgroupSizeControlProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSubgroupSizeControlProperties where+  zero = PhysicalDeviceSubgroupSizeControlProperties+           zero+           zero+           zero+           zero+++-- | VkPipelineShaderStageRequiredSubgroupSizeCreateInfo - Structure+-- specifying the required subgroup size of a newly created pipeline shader+-- stage+--+-- = Description+--+-- If a 'PipelineShaderStageRequiredSubgroupSizeCreateInfo' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', it specifies+-- that the pipeline shader stage being compiled has a required subgroup+-- size.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineShaderStageRequiredSubgroupSizeCreateInfo = PipelineShaderStageRequiredSubgroupSizeCreateInfo+  { -- | #pipelines-required-subgroup-size# @requiredSubgroupSize@ is an unsigned+    -- integer value specifying the required subgroup size for the newly+    -- created pipeline shader stage.+    --+    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760#+    -- @requiredSubgroupSize@ /must/ be a power-of-two integer+    --+    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761#+    -- @requiredSubgroupSize@ /must/ be greater or equal to+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>+    --+    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762#+    -- @requiredSubgroupSize@ /must/ be less than or equal to+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+    requiredSubgroupSize :: Word32 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineShaderStageRequiredSubgroupSizeCreateInfo)+#endif+deriving instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfo++instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineShaderStageRequiredSubgroupSizeCreateInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (requiredSubgroupSize)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    f++instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo where+  peekCStruct p = do+    requiredSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pure $ PipelineShaderStageRequiredSubgroupSizeCreateInfo+             requiredSubgroupSize++instance Storable PipelineShaderStageRequiredSubgroupSizeCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineShaderStageRequiredSubgroupSizeCreateInfo where+  zero = PipelineShaderStageRequiredSubgroupSizeCreateInfo+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs-boot view
@@ -0,0 +1,34 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_subgroup_size_control"+module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control  ( PhysicalDeviceSubgroupSizeControlFeatures+                                                                 , PhysicalDeviceSubgroupSizeControlProperties+                                                                 , PipelineShaderStageRequiredSubgroupSizeCreateInfo+                                                                 ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceSubgroupSizeControlFeatures++instance ToCStruct PhysicalDeviceSubgroupSizeControlFeatures+instance Show PhysicalDeviceSubgroupSizeControlFeatures++instance FromCStruct PhysicalDeviceSubgroupSizeControlFeatures+++data PhysicalDeviceSubgroupSizeControlProperties++instance ToCStruct PhysicalDeviceSubgroupSizeControlProperties+instance Show PhysicalDeviceSubgroupSizeControlProperties++instance FromCStruct PhysicalDeviceSubgroupSizeControlProperties+++data PipelineShaderStageRequiredSubgroupSizeCreateInfo++instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo+instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfo++instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs view
@@ -0,0 +1,139 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texel_buffer_alignment"+module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment  ( PhysicalDeviceTexelBufferAlignmentProperties(..)+                                                                  , StructureType(..)+                                                                  ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceTexelBufferAlignmentProperties - Structure describing+-- the texel buffer alignment requirements supported by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceTexelBufferAlignmentProperties' 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.+--+-- If the single texel alignment property is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the buffer view’s offset+-- /must/ be aligned to the corresponding byte alignment value. If the+-- single texel alignment property is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the buffer view’s offset+-- /must/ be aligned to the lesser of the corresponding byte alignment+-- value or the size of a single texel, based on+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@format@. If the size+-- of a single texel is a multiple of three bytes, then the size of a+-- single component of the format is used instead.+--+-- These limits /must/ not advertise a larger alignment than the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-required required>+-- maximum minimum value of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@,+-- for any format that supports use as a texel buffer.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment VK_EXT_texel_buffer_alignment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceTexelBufferAlignmentProperties = PhysicalDeviceTexelBufferAlignmentProperties+  { -- | #extension-limits-storageTexelBufferOffsetAlignmentBytes#+    -- @storageTexelBufferOffsetAlignmentBytes@ is a byte alignment that is+    -- sufficient for a storage texel buffer of any format. The value /must/ be+    -- a power of two.+    storageTexelBufferOffsetAlignmentBytes :: DeviceSize+  , -- | #extension-limits-storageTexelBufferOffsetSingleTexelAlignment#+    -- @storageTexelBufferOffsetSingleTexelAlignment@ indicates whether single+    -- texel alignment is sufficient for a storage texel buffer of any format.+    -- The value /must/ be a power of two.+    storageTexelBufferOffsetSingleTexelAlignment :: Bool+  , -- | #extension-limits-uniformTexelBufferOffsetAlignmentBytes#+    -- @uniformTexelBufferOffsetAlignmentBytes@ is a byte alignment that is+    -- sufficient for a uniform texel buffer of any format. The value /must/ be+    -- a power of two.+    uniformTexelBufferOffsetAlignmentBytes :: DeviceSize+  , -- | #extension-limits-uniformTexelBufferOffsetSingleTexelAlignment#+    -- @uniformTexelBufferOffsetSingleTexelAlignment@ indicates whether single+    -- texel alignment is sufficient for a uniform texel buffer of any format.+    -- The value /must/ be a power of two.+    uniformTexelBufferOffsetSingleTexelAlignment :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceTexelBufferAlignmentProperties)+#endif+deriving instance Show PhysicalDeviceTexelBufferAlignmentProperties++instance ToCStruct PhysicalDeviceTexelBufferAlignmentProperties where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceTexelBufferAlignmentProperties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (storageTexelBufferOffsetAlignmentBytes)+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (storageTexelBufferOffsetSingleTexelAlignment))+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (uniformTexelBufferOffsetAlignmentBytes)+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (uniformTexelBufferOffsetSingleTexelAlignment))+    f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceTexelBufferAlignmentProperties where+  peekCStruct p = do+    storageTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    storageTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+    uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+    pure $ PhysicalDeviceTexelBufferAlignmentProperties+             storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment)++instance Storable PhysicalDeviceTexelBufferAlignmentProperties where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceTexelBufferAlignmentProperties where+  zero = PhysicalDeviceTexelBufferAlignmentProperties+           zero+           zero+           zero+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texel_buffer_alignment"+module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment  (PhysicalDeviceTexelBufferAlignmentProperties) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceTexelBufferAlignmentProperties++instance ToCStruct PhysicalDeviceTexelBufferAlignmentProperties+instance Show PhysicalDeviceTexelBufferAlignmentProperties++instance FromCStruct PhysicalDeviceTexelBufferAlignmentProperties+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs view
@@ -0,0 +1,141 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texture_compression_astc_hdr"+module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr  ( PhysicalDeviceTextureCompressionASTCHDRFeatures(..)+                                                                        , Format(..)+                                                                        , StructureType(..)+                                                                        ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES))+import Vulkan.Core10.Enums.Format (Format(..))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceTextureCompressionASTCHDRFeatures - Structure describing+-- ASTC HDR features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceTextureCompressionASTCHDRFeatures' 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. 'PhysicalDeviceTextureCompressionASTCHDRFeatures' /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_texture_compression_astc_hdr VK_EXT_texture_compression_astc_hdr>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceTextureCompressionASTCHDRFeatures = PhysicalDeviceTextureCompressionASTCHDRFeatures+  { -- | #extension-features-textureCompressionASTC_HDR#+    -- @textureCompressionASTC_HDR@ indicates whether all of the ASTC HDR+    -- compressed texture formats are supported. If this feature is enabled,+    -- then the+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+    -- and+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+    -- features /must/ be supported in @optimalTilingFeatures@ for the+    -- following formats:+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK'+    --+    -- To query for additional properties, or if the feature is not enabled,+    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+    -- and+    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'+    -- /can/ be used to check for supported properties of individual formats as+    -- normal.+    textureCompressionASTC_HDR :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceTextureCompressionASTCHDRFeatures)+#endif+deriving instance Show PhysicalDeviceTextureCompressionASTCHDRFeatures++instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceTextureCompressionASTCHDRFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_HDR))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures where+  peekCStruct p = do+    textureCompressionASTC_HDR <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceTextureCompressionASTCHDRFeatures+             (bool32ToBool textureCompressionASTC_HDR)++instance Storable PhysicalDeviceTextureCompressionASTCHDRFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceTextureCompressionASTCHDRFeatures where+  zero = PhysicalDeviceTextureCompressionASTCHDRFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texture_compression_astc_hdr"+module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr  (PhysicalDeviceTextureCompressionASTCHDRFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceTextureCompressionASTCHDRFeatures++instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures+instance Show PhysicalDeviceTextureCompressionASTCHDRFeatures++instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs view
@@ -0,0 +1,235 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_tooling_info"+module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info  ( getPhysicalDeviceToolProperties+                                                        , PhysicalDeviceToolProperties(..)+                                                        , StructureType(..)+                                                        , ToolPurposeFlagBits(..)+                                                        , ToolPurposeFlags+                                                        ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.ByteString (packCString)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+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.Typeable (Typeable)+import Foreign.C.Types (CChar)+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.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)+import Vulkan.NamedType ((:::))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceToolProperties))+import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)+import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlags)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlagBits(..))+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlags)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPhysicalDeviceToolProperties+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolProperties -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolProperties -> IO Result++-- | vkGetPhysicalDeviceToolProperties - Reports properties of tools active+-- on the specified physical device+--+-- = Description+--+-- If @pToolProperties@ is @NULL@, then the number of tools currently+-- active on @physicalDevice@ is returned in @pToolCount@. Otherwise,+-- @pToolCount@ /must/ point to a variable set by the user to the number of+-- elements in the @pToolProperties@ array, and on return the variable is+-- overwritten with the number of structures actually written to+-- @pToolProperties@. If @pToolCount@ is less than the number of currently+-- active tools, at most @pToolCount@ structures will be written.+--+-- The count and properties of active tools /may/ change in response to+-- events outside the scope of the specification. An application /should/+-- assume these properties might change at any given time.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameter#+--     @physicalDevice@ /must/ be a valid+--     'Vulkan.Core10.Handles.PhysicalDevice' handle+--+-- -   #VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameter#+--     @pToolCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   #VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameter#+--     If the value referenced by @pToolCount@ is not @0@, and+--     @pToolProperties@ is not @NULL@, @pToolProperties@ /must/ be a valid+--     pointer to an array of @pToolCount@ 'PhysicalDeviceToolProperties'+--     structures+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+--     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'+--+-- [<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'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceToolProperties'+getPhysicalDeviceToolProperties :: forall io+                                 . (MonadIO io)+                                => -- | @physicalDevice@ is the handle to the physical device to query for+                                   -- active tools.+                                   PhysicalDevice+                                -> io (Result, ("toolProperties" ::: Vector PhysicalDeviceToolProperties))+getPhysicalDeviceToolProperties physicalDevice = liftIO . evalContT $ do+  let vkGetPhysicalDeviceToolPropertiesPtr = pVkGetPhysicalDeviceToolProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)+  lift $ unless (vkGetPhysicalDeviceToolPropertiesPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceToolProperties is null" Nothing Nothing+  let vkGetPhysicalDeviceToolProperties' = mkVkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolPropertiesPtr+  let physicalDevice' = physicalDeviceHandle (physicalDevice)+  pPToolCount <- ContT $ bracket (callocBytes @Word32 4) free+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolProperties" (vkGetPhysicalDeviceToolProperties' physicalDevice' (pPToolCount) (nullPtr))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pToolCount <- lift $ peek @Word32 pPToolCount+  pPToolProperties <- ContT $ bracket (callocBytes @PhysicalDeviceToolProperties ((fromIntegral (pToolCount)) * 1048)) free+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPToolProperties `advancePtrBytes` (i * 1048) :: Ptr PhysicalDeviceToolProperties) . ($ ())) [0..(fromIntegral (pToolCount)) - 1]+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolProperties" (vkGetPhysicalDeviceToolProperties' physicalDevice' (pPToolCount) ((pPToolProperties)))+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))+  pToolCount' <- lift $ peek @Word32 pPToolCount+  pToolProperties' <- lift $ generateM (fromIntegral (pToolCount')) (\i -> peekCStruct @PhysicalDeviceToolProperties (((pPToolProperties) `advancePtrBytes` (1048 * (i)) :: Ptr PhysicalDeviceToolProperties)))+  pure $ ((r'), pToolProperties')+++-- | VkPhysicalDeviceToolProperties - Structure providing information about+-- an active tool+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlags',+-- 'getPhysicalDeviceToolProperties',+-- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT'+data PhysicalDeviceToolProperties = PhysicalDeviceToolProperties+  { -- | @name@ is a null-terminated UTF-8 string containing the name of the+    -- tool.+    name :: ByteString+  , -- | @version@ is a null-terminated UTF-8 string containing the version of+    -- the tool.+    version :: ByteString+  , -- | @purposes@ is a bitmask of+    -- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits' which is+    -- populated with purposes supported by the tool.+    purposes :: ToolPurposeFlags+  , -- | @description@ is a null-terminated UTF-8 string containing a description+    -- of the tool.+    description :: ByteString+  , -- | @layer@ is a null-terminated UTF-8 string containing the name of the+    -- layer implementing the tool, if the tool is implemented in a layer -+    -- otherwise it /may/ be an empty string.+    layer :: ByteString+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceToolProperties)+#endif+deriving instance Show PhysicalDeviceToolProperties++instance ToCStruct PhysicalDeviceToolProperties where+  withCStruct x f = allocaBytes 1048 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceToolProperties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (name)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (version)+    poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlags)) (purposes)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (layer)+    f+  cStructSize = 1048+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)+    poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlags)) (zero)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)+    f++instance FromCStruct PhysicalDeviceToolProperties where+  peekCStruct p = do+    name <- packCString (lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))+    version <- packCString (lowerArrayPtr ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))+    purposes <- peek @ToolPurposeFlags ((p `plusPtr` 528 :: Ptr ToolPurposeFlags))+    description <- packCString (lowerArrayPtr ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))+    layer <- packCString (lowerArrayPtr ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))+    pure $ PhysicalDeviceToolProperties+             name version purposes description layer++instance Storable PhysicalDeviceToolProperties where+  sizeOf ~_ = 1048+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceToolProperties where+  zero = PhysicalDeviceToolProperties+           mempty+           mempty+           zero+           mempty+           mempty+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_tooling_info"+module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info  (PhysicalDeviceToolProperties) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceToolProperties++instance ToCStruct PhysicalDeviceToolProperties+instance Show PhysicalDeviceToolProperties++instance FromCStruct PhysicalDeviceToolProperties+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -0,0 +1,3098 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_copy_commands2"+module Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2  ( cmdCopyBuffer2+                                                          , cmdCopyImage2+                                                          , cmdBlitImage2+                                                          , cmdCopyBufferToImage2+                                                          , cmdCopyImageToBuffer2+                                                          , cmdResolveImage2+                                                          , BufferCopy2(..)+                                                          , ImageCopy2(..)+                                                          , ImageBlit2(..)+                                                          , BufferImageCopy2(..)+                                                          , ImageResolve2(..)+                                                          , CopyBufferInfo2(..)+                                                          , CopyImageInfo2(..)+                                                          , BlitImageInfo2(..)+                                                          , CopyBufferToImageInfo2(..)+                                                          , CopyImageToBufferInfo2(..)+                                                          , ResolveImageInfo2(..)+                                                          , StructureType(..)+                                                          ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Type.Equality ((:~:)(Refl))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (pokeSomeCStruct)+import Vulkan.Core10.Handles (Buffer)+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 {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImage2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.FundamentalTypes (Extent3D)+import Vulkan.Core10.Enums.Filter (Filter)+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)+import Vulkan.Core10.FundamentalTypes (Offset3D)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyBuffer2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferInfo2 -> IO ()++-- | vkCmdCopyBuffer2 - Copy data between buffer regions+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyBuffer2-commandBuffer-01822# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBuffer2-commandBuffer-01823# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBuffer2-commandBuffer-01824# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyBuffer2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter# @pCopyBufferInfo@+--     /must/ be a valid pointer to a valid 'CopyBufferInfo2' structure+--+-- -   #VUID-vkCmdCopyBuffer2-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-vkCmdCopyBuffer2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyBuffer2-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferInfo2'+cmdCopyBuffer2 :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command will be+                  -- recorded.+                  CommandBuffer+               -> -- | @pCopyBufferInfo@ is a pointer to a 'CopyBufferInfo2' structure+                  -- describing the copy parameters.+                  CopyBufferInfo2+               -> io ()+cmdCopyBuffer2 commandBuffer copyBufferInfo = liftIO . evalContT $ do+  let vkCmdCopyBuffer2Ptr = pVkCmdCopyBuffer2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyBuffer2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer2 is null" Nothing Nothing+  let vkCmdCopyBuffer2' = mkVkCmdCopyBuffer2 vkCmdCopyBuffer2Ptr+  pCopyBufferInfo <- ContT $ withCStruct (copyBufferInfo)+  lift $ traceAroundEvent "vkCmdCopyBuffer2" (vkCmdCopyBuffer2' (commandBufferHandle (commandBuffer)) pCopyBufferInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyImage2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageInfo2 -> IO ()++-- | vkCmdCopyImage2 - Copy data between images+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyImage2-commandBuffer-01825# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImage2-commandBuffer-01826# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImage2-commandBuffer-01827# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyImage2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyImage2-pCopyImageInfo-parameter# @pCopyImageInfo@+--     /must/ be a valid pointer to a valid 'CopyImageInfo2' structure+--+-- -   #VUID-vkCmdCopyImage2-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-vkCmdCopyImage2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyImage2-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageInfo2'+cmdCopyImage2 :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @pCopyImageInfo@ is a pointer to a 'CopyImageInfo2' structure describing+                 -- the copy parameters.+                 CopyImageInfo2+              -> io ()+cmdCopyImage2 commandBuffer copyImageInfo = liftIO . evalContT $ do+  let vkCmdCopyImage2Ptr = pVkCmdCopyImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyImage2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage2 is null" Nothing Nothing+  let vkCmdCopyImage2' = mkVkCmdCopyImage2 vkCmdCopyImage2Ptr+  pCopyImageInfo <- ContT $ withCStruct (copyImageInfo)+  lift $ traceAroundEvent "vkCmdCopyImage2" (vkCmdCopyImage2' (commandBufferHandle (commandBuffer)) pCopyImageInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBlitImage2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()++-- | vkCmdBlitImage2 - Copy regions of an image, potentially performing+-- format conversion,+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBlitImage2-commandBuffer-01834# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdBlitImage2-commandBuffer-01835# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdBlitImage2-commandBuffer-01836# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBlitImage2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBlitImage2-pBlitImageInfo-parameter# @pBlitImageInfo@+--     /must/ be a valid pointer to a valid 'BlitImageInfo2' structure+--+-- -   #VUID-vkCmdBlitImage2-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-vkCmdBlitImage2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBlitImage2-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'BlitImageInfo2', 'Vulkan.Core10.Handles.CommandBuffer'+cmdBlitImage2 :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2' structure describing+                 -- the blit parameters.+                 BlitImageInfo2+              -> io ()+cmdBlitImage2 commandBuffer blitImageInfo = liftIO . evalContT $ do+  let vkCmdBlitImage2Ptr = pVkCmdBlitImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBlitImage2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage2 is null" Nothing Nothing+  let vkCmdBlitImage2' = mkVkCmdBlitImage2 vkCmdBlitImage2Ptr+  pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)+  lift $ traceAroundEvent "vkCmdBlitImage2" (vkCmdBlitImage2' (commandBufferHandle (commandBuffer)) pBlitImageInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyBufferToImage2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2 -> IO ()++-- | vkCmdCopyBufferToImage2 - Copy data from a buffer into an image+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyBufferToImage2-commandBuffer-01828# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBufferToImage2-commandBuffer-01829# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyBufferToImage2-commandBuffer-01830# If+--     @commandBuffer@ is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter#+--     @pCopyBufferToImageInfo@ /must/ be a valid pointer to a valid+--     'CopyBufferToImageInfo2' structure+--+-- -   #VUID-vkCmdCopyBufferToImage2-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-vkCmdCopyBufferToImage2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyBufferToImage2-renderpass# This command /must/ only+--     be called outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferToImageInfo2'+cmdCopyBufferToImage2 :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer into which the command will be+                         -- recorded.+                         CommandBuffer+                      -> -- | @pCopyBufferToImageInfo@ is a pointer to a 'CopyBufferToImageInfo2'+                         -- structure describing the copy parameters.+                         CopyBufferToImageInfo2+                      -> io ()+cmdCopyBufferToImage2 commandBuffer copyBufferToImageInfo = liftIO . evalContT $ do+  let vkCmdCopyBufferToImage2Ptr = pVkCmdCopyBufferToImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyBufferToImage2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage2 is null" Nothing Nothing+  let vkCmdCopyBufferToImage2' = mkVkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2Ptr+  pCopyBufferToImageInfo <- ContT $ withCStruct (copyBufferToImageInfo)+  lift $ traceAroundEvent "vkCmdCopyBufferToImage2" (vkCmdCopyBufferToImage2' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyImageToBuffer2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2 -> IO ()++-- | vkCmdCopyImageToBuffer2 - Copy image data into a buffer+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833# If+--     @commandBuffer@ is a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter#+--     @pCopyImageToBufferInfo@ /must/ be a valid pointer to a valid+--     'CopyImageToBufferInfo2' structure+--+-- -   #VUID-vkCmdCopyImageToBuffer2-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-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyImageToBuffer2-renderpass# This command /must/ only+--     be called outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageToBufferInfo2'+cmdCopyImageToBuffer2 :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer into which the command will be+                         -- recorded.+                         CommandBuffer+                      -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'CopyImageToBufferInfo2'+                         -- structure describing the copy parameters.+                         CopyImageToBufferInfo2+                      -> io ()+cmdCopyImageToBuffer2 commandBuffer copyImageToBufferInfo = liftIO . evalContT $ do+  let vkCmdCopyImageToBuffer2Ptr = pVkCmdCopyImageToBuffer2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyImageToBuffer2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer2 is null" Nothing Nothing+  let vkCmdCopyImageToBuffer2' = mkVkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2Ptr+  pCopyImageToBufferInfo <- ContT $ withCStruct (copyImageToBufferInfo)+  lift $ traceAroundEvent "vkCmdCopyImageToBuffer2" (vkCmdCopyImageToBuffer2' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdResolveImage2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr ResolveImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr ResolveImageInfo2 -> IO ()++-- | vkCmdResolveImage2 - Resolve regions of an image+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdResolveImage2-commandBuffer-01837# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdResolveImage2-commandBuffer-01838# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdResolveImage2-commandBuffer-01839# If @commandBuffer@ is+--     a protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdResolveImage2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdResolveImage2-pResolveImageInfo-parameter#+--     @pResolveImageInfo@ /must/ be a valid pointer to a valid+--     'ResolveImageInfo2' structure+--+-- -   #VUID-vkCmdResolveImage2-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-vkCmdResolveImage2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdResolveImage2-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'ResolveImageInfo2'+cmdResolveImage2 :: forall io+                  . (MonadIO io)+                 => -- | @commandBuffer@ is the command buffer into which the command will be+                    -- recorded.+                    CommandBuffer+                 -> -- | @pResolveImageInfo@ is a pointer to a 'ResolveImageInfo2' structure+                    -- describing the resolve parameters.+                    ResolveImageInfo2+                 -> io ()+cmdResolveImage2 commandBuffer resolveImageInfo = liftIO . evalContT $ do+  let vkCmdResolveImage2Ptr = pVkCmdResolveImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdResolveImage2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage2 is null" Nothing Nothing+  let vkCmdResolveImage2' = mkVkCmdResolveImage2 vkCmdResolveImage2Ptr+  pResolveImageInfo <- ContT $ withCStruct (resolveImageInfo)+  lift $ traceAroundEvent "vkCmdResolveImage2" (vkCmdResolveImage2' (commandBufferHandle (commandBuffer)) pResolveImageInfo)+  pure $ ()+++-- | VkBufferCopy2 - Structure specifying a buffer copy operation+--+-- == Valid Usage+--+-- -   #VUID-VkBufferCopy2-size-01988# The @size@ /must/ be greater than+--     @0@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkBufferCopy2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2'+--+-- -   #VUID-VkBufferCopy2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CopyBufferInfo2', 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferCopy2 = BufferCopy2+  { -- | @srcOffset@ is the starting offset in bytes from the start of+    -- @srcBuffer@.+    srcOffset :: DeviceSize+  , -- | @dstOffset@ is the starting offset in bytes from the start of+    -- @dstBuffer@.+    dstOffset :: DeviceSize+  , -- | @size@ is the number of bytes to copy.+    size :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferCopy2)+#endif+deriving instance Show BufferCopy2++instance ToCStruct BufferCopy2 where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferCopy2{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (srcOffset)+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (dstOffset)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (size)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct BufferCopy2 where+  peekCStruct p = do+    srcOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    dstOffset <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+    size <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+    pure $ BufferCopy2+             srcOffset dstOffset size++instance Storable BufferCopy2 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCopy2 where+  zero = BufferCopy2+           zero+           zero+           zero+++-- | VkImageCopy2 - Structure specifying an image copy operation+--+-- == Valid Usage+--+-- -   #VUID-VkImageCopy2-extent-00140# The number of slices of the+--     @extent@ (for 3D) or layers of the @srcSubresource@ (for non-3D)+--     /must/ match the number of slices of the @extent@ (for 3D) or layers+--     of the @dstSubresource@ (for non-3D)+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageCopy2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2'+--+-- -   #VUID-VkImageCopy2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkImageCopy2-srcSubresource-parameter# @srcSubresource@ /must/+--     be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- -   #VUID-VkImageCopy2-dstSubresource-parameter# @dstSubresource@ /must/+--     be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CopyImageInfo2', 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageCopy2 = ImageCopy2+  { -- | @srcSubresource@ and @dstSubresource@ are+    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' structures+    -- specifying the image subresources of the images used for the source and+    -- destination image data, respectively.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+    -- in texels of the sub-regions of the source and destination image data.+    srcOffset :: Offset3D+  , -- No documentation found for Nested "VkImageCopy2" "dstSubresource"+    dstSubresource :: ImageSubresourceLayers+  , -- No documentation found for Nested "VkImageCopy2" "dstOffset"+    dstOffset :: Offset3D+  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@+    -- and @depth@.+    extent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCopy2)+#endif+deriving instance Show ImageCopy2++instance ToCStruct ImageCopy2 where+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageCopy2{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)+    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)+    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)+    f+  cStructSize = 88+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct ImageCopy2 where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))+    extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))+    pure $ ImageCopy2+             srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageCopy2 where+  sizeOf ~_ = 88+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCopy2 where+  zero = ImageCopy2+           zero+           zero+           zero+           zero+           zero+++-- | VkImageBlit2 - Structure specifying an image blit operation+--+-- = Description+--+-- For each element of the @pRegions@ array, a blit operation is performed+-- for the specified source and destination regions.+--+-- == Valid Usage+--+-- -   #VUID-VkImageBlit2-aspectMask-00238# The @aspectMask@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- -   #VUID-VkImageBlit2-layerCount-00239# The @layerCount@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageBlit2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2'+--+-- -   #VUID-VkImageBlit2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkImageBlit2-srcSubresource-parameter# @srcSubresource@ /must/+--     be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- -   #VUID-VkImageBlit2-dstSubresource-parameter# @dstSubresource@ /must/+--     be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'BlitImageInfo2',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageBlit2 (es :: [Type]) = ImageBlit2+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @srcSubresource@ is the subresource to blit from.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffsets@ is a pointer to an array of two+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+    -- bounds of the source region within @srcSubresource@.+    srcOffsets :: (Offset3D, Offset3D)+  , -- | @dstSubresource@ is the subresource to blit into.+    dstSubresource :: ImageSubresourceLayers+  , -- | @dstOffsets@ is a pointer to an array of two+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+    -- bounds of the destination region within @dstSubresource@.+    dstOffsets :: (Offset3D, Offset3D)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageBlit2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (ImageBlit2 es)++instance Extensible ImageBlit2 where+  extensibleTypeName = "ImageBlit2"+  setNext ImageBlit2{..} next' = ImageBlit2{next = next', ..}+  getNext ImageBlit2{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2 e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f+    | otherwise = Nothing++instance (Extendss ImageBlit2 es, PokeChain es) => ToCStruct (ImageBlit2 es) where+  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageBlit2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+    lift $ case (srcOffsets) of+      (e0, e1) -> do+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+    lift $ case (dstOffsets) of+      (e0, e1) -> do+        poke (pDstOffsets' :: Ptr Offset3D) (e0)+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    lift $ f+  cStructSize = 96+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+    lift $ case ((zero, zero)) of+      (e0, e1) -> do+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (zero)+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+    lift $ case ((zero, zero)) of+      (e0, e1) -> do+        poke (pDstOffsets' :: Ptr Offset3D) (e0)+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    lift $ f++instance (Extendss ImageBlit2 es, PeekChain es) => FromCStruct (ImageBlit2 es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers))+    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+    pure $ ImageBlit2+             next srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))++instance es ~ '[] => Zero (ImageBlit2 es) where+  zero = ImageBlit2+           ()+           zero+           (zero, zero)+           zero+           (zero, zero)+++-- | VkBufferImageCopy2 - Structure specifying a buffer image copy operation+--+-- = Description+--+-- This structure is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy', but adds @sType@+-- and @pNext@ parameters, allowing it to be more easily extended.+--+-- == Valid Usage+--+-- -   #VUID-VkBufferImageCopy2-bufferRowLength-00195# @bufferRowLength@+--     /must/ be @0@, or greater than or equal to the @width@ member of+--     @imageExtent@+--+-- -   #VUID-VkBufferImageCopy2-bufferImageHeight-00196#+--     @bufferImageHeight@ /must/ be @0@, or greater than or equal to the+--     @height@ member of @imageExtent@+--+-- -   #VUID-VkBufferImageCopy2-aspectMask-00212# The @aspectMask@ member+--     of @imageSubresource@ /must/ only have a single bit set+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkBufferImageCopy2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2'+--+-- -   #VUID-VkBufferImageCopy2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkBufferImageCopy2-imageSubresource-parameter#+--     @imageSubresource@ /must/ be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CopyBufferToImageInfo2', 'CopyImageToBufferInfo2',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferImageCopy2 (es :: [Type]) = BufferImageCopy2+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @bufferOffset@ is the offset in bytes from the start of the buffer+    -- object where the image data is copied from or to.+    bufferOffset :: DeviceSize+  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion+    -- of a larger two- or three-dimensional image in buffer memory, and+    -- control the addressing calculations. If either of these values is zero,+    -- that aspect of the buffer memory is considered to be tightly packed+    -- according to the @imageExtent@.+    bufferRowLength :: Word32+  , -- No documentation found for Nested "VkBufferImageCopy2" "bufferImageHeight"+    bufferImageHeight :: Word32+  , -- | @imageSubresource@ is a+    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to+    -- specify the specific image subresources of the image used for the source+    -- or destination image data.+    imageSubresource :: ImageSubresourceLayers+  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the+    -- sub-region of the source or destination image data.+    imageOffset :: Offset3D+  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,+    -- @height@ and @depth@.+    imageExtent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferImageCopy2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (BufferImageCopy2 es)++instance Extensible BufferImageCopy2 where+  extensibleTypeName = "BufferImageCopy2"+  setNext BufferImageCopy2{..} next' = BufferImageCopy2{next = next', ..}+  getNext BufferImageCopy2{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2 e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f+    | otherwise = Nothing++instance (Extendss BufferImageCopy2 es, PokeChain es) => ToCStruct (BufferImageCopy2 es) where+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferImageCopy2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (bufferOffset)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bufferRowLength)+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (bufferImageHeight)+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource)+    lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset)+    lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent)+    lift $ f+  cStructSize = 72+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero)+    lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero)+    lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)+    lift $ f++instance (Extendss BufferImageCopy2 es, PeekChain es) => FromCStruct (BufferImageCopy2 es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    bufferOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    bufferRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    bufferImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))+    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))+    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))+    pure $ BufferImageCopy2+             next bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent++instance es ~ '[] => Zero (BufferImageCopy2 es) where+  zero = BufferImageCopy2+           ()+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkImageResolve2 - Structure specifying an image resolve operation+--+-- == Valid Usage+--+-- -   #VUID-VkImageResolve2-aspectMask-00266# The @aspectMask@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ only contain+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageResolve2-layerCount-00267# The @layerCount@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageResolve2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2'+--+-- -   #VUID-VkImageResolve2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkImageResolve2-srcSubresource-parameter# @srcSubresource@+--     /must/ be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- -   #VUID-VkImageResolve2-dstSubresource-parameter# @dstSubresource@+--     /must/ be a valid+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+--     structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'ResolveImageInfo2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageResolve2 = ImageResolve2+  { -- | @srcSubresource@ and @dstSubresource@ are+    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' structures+    -- specifying the image subresources of the images used for the source and+    -- destination image data, respectively. Resolve of depth\/stencil images+    -- is not supported.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+    -- in texels of the sub-regions of the source and destination image data.+    srcOffset :: Offset3D+  , -- No documentation found for Nested "VkImageResolve2" "dstSubresource"+    dstSubresource :: ImageSubresourceLayers+  , -- No documentation found for Nested "VkImageResolve2" "dstOffset"+    dstOffset :: Offset3D+  , -- | @extent@ is the size in texels of the source image to resolve in+    -- @width@, @height@ and @depth@.+    extent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageResolve2)+#endif+deriving instance Show ImageResolve2++instance ToCStruct ImageResolve2 where+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageResolve2{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)+    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)+    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)+    f+  cStructSize = 88+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct ImageResolve2 where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))+    extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))+    pure $ ImageResolve2+             srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageResolve2 where+  sizeOf ~_ = 88+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageResolve2 where+  zero = ImageResolve2+           zero+           zero+           zero+           zero+           zero+++-- | VkCopyBufferInfo2 - Structure specifying parameters of a buffer copy+-- command+--+-- = Description+--+-- Members defined by this structure with the same name as parameters in+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer' have the identical+-- effect to those parameters; the child structure 'BufferCopy2' is a+-- variant of 'Vulkan.Core10.CommandBufferBuilding.BufferCopy' which+-- includes @sType@ and @pNext@ parameters, allowing it to be extended.+--+-- == Valid Usage+--+-- -   #VUID-VkCopyBufferInfo2-srcOffset-00113# The @srcOffset@ member of+--     each element of @pRegions@ /must/ be less than the size of+--     @srcBuffer@+--+-- -   #VUID-VkCopyBufferInfo2-dstOffset-00114# The @dstOffset@ member of+--     each element of @pRegions@ /must/ be less than the size of+--     @dstBuffer@+--+-- -   #VUID-VkCopyBufferInfo2-size-00115# The @size@ member of each+--     element of @pRegions@ /must/ be less than or equal to the size of+--     @srcBuffer@ minus @srcOffset@+--+-- -   #VUID-VkCopyBufferInfo2-size-00116# The @size@ member of each+--     element of @pRegions@ /must/ be less than or equal to the size of+--     @dstBuffer@ minus @dstOffset@+--+-- -   #VUID-VkCopyBufferInfo2-pRegions-00117# The union of the source+--     regions, and the union of the destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-VkCopyBufferInfo2-srcBuffer-00118# @srcBuffer@ /must/ have+--     been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-VkCopyBufferInfo2-srcBuffer-00119# If @srcBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyBufferInfo2-dstBuffer-00120# @dstBuffer@ /must/ have+--     been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-VkCopyBufferInfo2-dstBuffer-00121# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyBufferInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2'+--+-- -   #VUID-VkCopyBufferInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkCopyBufferInfo2-srcBuffer-parameter# @srcBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-VkCopyBufferInfo2-dstBuffer-parameter# @dstBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-VkCopyBufferInfo2-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'BufferCopy2'+--     structures+--+-- -   #VUID-VkCopyBufferInfo2-regionCount-arraylength# @regionCount@+--     /must/ be greater than @0@+--+-- -   #VUID-VkCopyBufferInfo2-commonparent# Both of @dstBuffer@, and+--     @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyBuffer2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBuffer2KHR'+data CopyBufferInfo2 = CopyBufferInfo2+  { -- | @srcBuffer@ is the source buffer.+    srcBuffer :: Buffer+  , -- | @dstBuffer@ is the destination buffer.+    dstBuffer :: Buffer+  , -- | @pRegions@ is a pointer to an array of 'BufferCopy2' structures+    -- specifying the regions to copy.+    regions :: Vector BufferCopy2+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyBufferInfo2)+#endif+deriving instance Show CopyBufferInfo2++instance ToCStruct CopyBufferInfo2 where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyBufferInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)+    lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (dstBuffer)+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @BufferCopy2 ((Data.Vector.length (regions)) * 40)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (40 * (i)) :: Ptr BufferCopy2) (e)) (regions)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2))) (pPRegions')+    lift $ f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)+    f++instance FromCStruct CopyBufferInfo2 where+  peekCStruct p = do+    srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+    dstBuffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer))+    regionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    pRegions <- peek @(Ptr BufferCopy2) ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2)))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferCopy2 ((pRegions `advancePtrBytes` (40 * (i)) :: Ptr BufferCopy2)))+    pure $ CopyBufferInfo2+             srcBuffer dstBuffer pRegions'++instance Zero CopyBufferInfo2 where+  zero = CopyBufferInfo2+           zero+           zero+           mempty+++-- | VkCopyImageInfo2 - Structure specifying parameters of an image copy+-- command+--+-- == Valid Usage+--+-- -   #VUID-VkCopyImageInfo2-pRegions-00124# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01995# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- -   #VUID-VkCopyImageInfo2-srcImage-00126# @srcImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01546# If @srcImage@ is non-sparse+--     then the image or /disjoint/ plane to be copied /must/ be bound+--     completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyImageInfo2-srcImageLayout-00128# @srcImageLayout@ /must/+--     specify the layout of the image subresources of @srcImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkCopyImageInfo2-srcImageLayout-01917# @srcImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01996# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-VkCopyImageInfo2-dstImage-00131# @dstImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01547# If @dstImage@ is non-sparse+--     then the image or /disjoint/ plane that is the destination of the+--     copy /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyImageInfo2-dstImageLayout-00133# @dstImageLayout@ /must/+--     specify the layout of the image subresources of @dstImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkCopyImageInfo2-dstImageLayout-01395# @dstImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01548# If the+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ /must/ be compatible, as defined+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>+--+-- -   #VUID-VkCopyImageInfo2-None-01549# In a copy to or from a plane of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,+--     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane+--     /must/ be compatible according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>+--     for the plane being copied+--+-- -   #VUID-VkCopyImageInfo2-srcImage-00136# The sample count of+--     @srcImage@ and @dstImage@ /must/ match+--+-- -   #VUID-VkCopyImageInfo2-srcSubresource-01696# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-VkCopyImageInfo2-dstSubresource-01697# The+--     @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-VkCopyImageInfo2-srcSubresource-01698# The+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-VkCopyImageInfo2-dstSubresource-01699# The+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-VkCopyImageInfo2-srcOffset-01783# The @srcOffset@ and @extent@+--     members of each element of @pRegions@ /must/ respect the image+--     transfer granularity requirements of @commandBuffer@’s command+--     pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-VkCopyImageInfo2-dstOffset-01784# The @dstOffset@ and @extent@+--     members of each element of @pRegions@ /must/ respect the image+--     transfer granularity requirements of @commandBuffer@’s command+--     pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-VkCopyImageInfo2-dstImage-02542# @dstImage@ and @srcImage@+--     /must/ not have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01551# If neither @srcImage@ nor+--     @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@ and+--     @dstSubresource.aspectMask@ /must/ match+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01552# If @srcImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01553# If @srcImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01554# If @dstImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+--     then for each element of @pRegions@, @dstSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01555# If @dstImage@ has a+--     'Vulkan.Core10.Enums.Format.Format' with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+--     then for each element of @pRegions@, @dstSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01556# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     and the @dstImage@ does not have a multi-planar image format, then+--     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01557# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     and the @srcImage@ does not have a multi-planar image format, then+--     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkCopyImageInfo2-srcImage-04443# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+--     @srcSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-04444# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+--     @dstSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkCopyImageInfo2-aspectMask-00142# For each element of+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+--     present in @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-aspectMask-00143# For each element of+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-VkCopyImageInfo2-srcOffset-00144# For each element of+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-srcOffset-00145# For each element of+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-00146# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-VkCopyImageInfo2-srcOffset-00147# For each element of+--     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01785# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01786# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01787# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01788# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01790# If @srcImage@ and @dstImage@+--     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then+--     for each element of @pRegions@, @extent.depth@ /must/ be @1@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01791# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @extent.depth@ /must/ equal+--     @srcSubresource.layerCount@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01792# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @extent.depth@ /must/ equal+--     @dstSubresource.layerCount@+--+-- -   #VUID-VkCopyImageInfo2-dstOffset-00150# For each element of+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyImageInfo2-dstOffset-00151# For each element of+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-00152# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-VkCopyImageInfo2-dstOffset-00153# For each element of+--     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01727# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, all members of @srcOffset@+--     /must/ be a multiple of the corresponding dimensions of the+--     compressed texel block+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01728# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.width@ /must/ be a+--     multiple of the compressed texel block width or (@extent.width@ ++--     @srcOffset.x@) /must/ equal the width of the specified+--     @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01729# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.height@ /must/ be a+--     multiple of the compressed texel block height or (@extent.height@ ++--     @srcOffset.y@) /must/ equal the height of the specified+--     @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-01730# If @srcImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@extent.depth@ ++--     @srcOffset.z@) /must/ equal the depth of the specified+--     @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01731# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, all members of @dstOffset@+--     /must/ be a multiple of the corresponding dimensions of the+--     compressed texel block+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01732# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.width@ /must/ be a+--     multiple of the compressed texel block width or (@extent.width@ ++--     @dstOffset.x@) /must/ equal the width of the specified+--     @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01733# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.height@ /must/ be a+--     multiple of the compressed texel block height or (@extent.height@ ++--     @dstOffset.y@) /must/ equal the height of the specified+--     @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyImageInfo2-dstImage-01734# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     then for each element of @pRegions@, @extent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@extent.depth@ ++--     @dstOffset.z@) /must/ equal the depth of the specified+--     @dstSubresource@ of @dstImage@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyImageInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2'+--+-- -   #VUID-VkCopyImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkCopyImageInfo2-srcImage-parameter# @srcImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkCopyImageInfo2-srcImageLayout-parameter# @srcImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkCopyImageInfo2-dstImage-parameter# @dstImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkCopyImageInfo2-dstImageLayout-parameter# @dstImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkCopyImageInfo2-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'ImageCopy2'+--     structures+--+-- -   #VUID-VkCopyImageInfo2-regionCount-arraylength# @regionCount@ /must/+--     be greater than @0@+--+-- -   #VUID-VkCopyImageInfo2-commonparent# Both of @dstImage@, and+--     @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Image', 'ImageCopy2',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImage2KHR'+data CopyImageInfo2 = CopyImageInfo2+  { -- | @srcImage@ is the source image.+    srcImage :: Image+  , -- | @srcImageLayout@ is the current layout of the source image subresource.+    srcImageLayout :: ImageLayout+  , -- | @dstImage@ is the destination image.+    dstImage :: Image+  , -- | @dstImageLayout@ is the current layout of the destination image+    -- subresource.+    dstImageLayout :: ImageLayout+  , -- | @pRegions@ is a pointer to an array of 'ImageCopy2' structures+    -- specifying the regions to copy.+    regions :: Vector ImageCopy2+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyImageInfo2)+#endif+deriving instance Show CopyImageInfo2++instance ToCStruct CopyImageInfo2 where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyImageInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @ImageCopy2 ((Data.Vector.length (regions)) * 88)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2) (e)) (regions)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2))) (pPRegions')+    lift $ f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+    f++instance FromCStruct CopyImageInfo2 where+  peekCStruct p = do+    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+    dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+    regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    pRegions <- peek @(Ptr ImageCopy2) ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2)))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2 ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2)))+    pure $ CopyImageInfo2+             srcImage srcImageLayout dstImage dstImageLayout pRegions'++instance Zero CopyImageInfo2 where+  zero = CopyImageInfo2+           zero+           zero+           zero+           zero+           mempty+++-- | VkBlitImageInfo2 - Structure specifying parameters of blit image command+--+-- == Valid Usage+--+-- -   #VUID-VkBlitImageInfo2-pRegions-00215# The source region specified+--     by each element of @pRegions@ /must/ be a region that is contained+--     within @srcImage@+--+-- -   #VUID-VkBlitImageInfo2-pRegions-00216# The destination region+--     specified by each element of @pRegions@ /must/ be a region that is+--     contained within @dstImage@+--+-- -   #VUID-VkBlitImageInfo2-pRegions-00217# The union of all destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory with any texel that /may/ be sampled during the blit+--     operation+--+-- -   #VUID-VkBlitImageInfo2-srcImage-01999# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-06421# @srcImage@ /must/ not use a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00219# @srcImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00220# If @srcImage@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkBlitImageInfo2-srcImageLayout-00221# @srcImageLayout@ /must/+--     specify the layout of the image subresources of @srcImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkBlitImageInfo2-srcImageLayout-01398# @srcImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-VkBlitImageInfo2-dstImage-02000# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'+--+-- -   #VUID-VkBlitImageInfo2-dstImage-06422# @dstImage@ /must/ not use a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>+--+-- -   #VUID-VkBlitImageInfo2-dstImage-00224# @dstImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-VkBlitImageInfo2-dstImage-00225# If @dstImage@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkBlitImageInfo2-dstImageLayout-00226# @dstImageLayout@ /must/+--     specify the layout of the image subresources of @dstImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkBlitImageInfo2-dstImageLayout-01399# @dstImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00229# If either of @srcImage@ or+--     @dstImage@ was created with a signed integer+--     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+--     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00230# If either of @srcImage@ or+--     @dstImage@ was created with an unsigned integer+--     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+--     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00231# If either of @srcImage@ or+--     @dstImage@ was created with a depth\/stencil format, the other+--     /must/ have exactly the same format+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00232# If @srcImage@ was created+--     with a depth\/stencil format, @filter@ /must/ be+--     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00233# @srcImage@ /must/ have been+--     created with a @samples@ value of+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkBlitImageInfo2-dstImage-00234# @dstImage@ /must/ have been+--     created with a @samples@ value of+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkBlitImageInfo2-filter-02001# If @filter@ is+--     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-VkBlitImageInfo2-filter-02002# If @filter@ is+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-VkBlitImageInfo2-filter-00237# If @filter@ is+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@+--     /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- -   #VUID-VkBlitImageInfo2-srcSubresource-01705# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-VkBlitImageInfo2-dstSubresource-01706# The+--     @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-VkBlitImageInfo2-srcSubresource-01707# The+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-VkBlitImageInfo2-dstSubresource-01708# The+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-VkBlitImageInfo2-dstImage-02545# @dstImage@ and @srcImage@+--     /must/ not have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00240# If either @srcImage@ or+--     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',+--     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@+--     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and+--     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/+--     each be @1@+--+-- -   #VUID-VkBlitImageInfo2-aspectMask-00241# For each element of+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+--     present in @srcImage@+--+-- -   #VUID-VkBlitImageInfo2-aspectMask-00242# For each element of+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-VkBlitImageInfo2-srcOffset-00243# For each element of+--     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be+--     greater than or equal to @0@ and less than or equal to the width of+--     the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkBlitImageInfo2-srcOffset-00244# For each element of+--     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be+--     greater than or equal to @0@ and less than or equal to the height of+--     the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00245# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y+--     /must/ be @1@+--+-- -   #VUID-VkBlitImageInfo2-srcOffset-00246# For each element of+--     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be+--     greater than or equal to @0@ and less than or equal to the depth of+--     the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkBlitImageInfo2-srcImage-00247# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z+--     /must/ be @1@+--+-- -   #VUID-VkBlitImageInfo2-dstOffset-00248# For each element of+--     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be+--     greater than or equal to @0@ and less than or equal to the width of+--     the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkBlitImageInfo2-dstOffset-00249# For each element of+--     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be+--     greater than or equal to @0@ and less than or equal to the height of+--     the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkBlitImageInfo2-dstImage-00250# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y+--     /must/ be @1@+--+-- -   #VUID-VkBlitImageInfo2-dstOffset-00251# For each element of+--     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be+--     greater than or equal to @0@ and less than or equal to the depth of+--     the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkBlitImageInfo2-dstImage-00252# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z+--     /must/ be @1@+--+-- -   #VUID-VkBlitImageInfo2-pRegions-04561# If any element of @pRegions@+--     contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be+--     block-compressed images+--+-- -   #VUID-VkBlitImageInfo2KHR-pRegions-06207# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ /must/ be of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- -   #VUID-VkBlitImageInfo2KHR-pRegions-06208# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ /must/ not have a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkBlitImageInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2'+--+-- -   #VUID-VkBlitImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkBlitImageInfo2-srcImage-parameter# @srcImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkBlitImageInfo2-srcImageLayout-parameter# @srcImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkBlitImageInfo2-dstImage-parameter# @dstImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkBlitImageInfo2-dstImageLayout-parameter# @dstImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkBlitImageInfo2-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'ImageBlit2'+--     structures+--+-- -   #VUID-VkBlitImageInfo2-filter-parameter# @filter@ /must/ be a valid+--     'Vulkan.Core10.Enums.Filter.Filter' value+--+-- -   #VUID-VkBlitImageInfo2-regionCount-arraylength# @regionCount@ /must/+--     be greater than @0@+--+-- -   #VUID-VkBlitImageInfo2-commonparent# Both of @dstImage@, and+--     @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',+-- 'ImageBlit2', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'+data BlitImageInfo2 = BlitImageInfo2+  { -- | @srcImage@ is the source image.+    srcImage :: Image+  , -- | @srcImageLayout@ is the layout of the source image subresources for the+    -- blit.+    srcImageLayout :: ImageLayout+  , -- | @dstImage@ is the destination image.+    dstImage :: Image+  , -- | @dstImageLayout@ is the layout of the destination image subresources for+    -- the blit.+    dstImageLayout :: ImageLayout+  , -- | @pRegions@ is a pointer to an array of 'ImageBlit2' structures+    -- specifying the regions to blit.+    regions :: Vector (SomeStruct ImageBlit2)+  , -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter+    -- to apply if the blits require scaling.+    filter' :: Filter+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BlitImageInfo2)+#endif+deriving instance Show BlitImageInfo2++instance ToCStruct BlitImageInfo2 where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BlitImageInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @(ImageBlit2 _) ((Data.Vector.length (regions)) * 96)+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (96 * (i)) :: Ptr (ImageBlit2 _))) (e) . ($ ())) (regions)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2 _)))) (pPRegions')+    lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (filter')+    lift $ f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)+    f++instance FromCStruct BlitImageInfo2 where+  peekCStruct p = do+    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+    dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+    regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    pRegions <- peek @(Ptr (ImageBlit2 _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2 _))))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2 _)))))+    filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))+    pure $ BlitImageInfo2+             srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'++instance Zero BlitImageInfo2 where+  zero = BlitImageInfo2+           zero+           zero+           zero+           zero+           mempty+           zero+++-- | VkCopyBufferToImageInfo2 - Structure specifying parameters of a buffer+-- to image copy command+--+-- == Valid Usage+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-04565# If the image region+--     specified by each element of @pRegions@ does not contain+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, it /must/ be a region that is contained within+--     the specified @imageSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image+--     region specified by each element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, the rotated destination region as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>+--     /must/ be contained within @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @dstImage@ /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#blocked-image blocked image>+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @dstImage@ /must/ be of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @dstImage@ /must/ not have a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-00171# @srcBuffer@ /must/ be+--     large enough to contain all buffer locations that are accessed+--     according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-00173# The union of all+--     source regions, and the union of all destination regions, specified+--     by the elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-VkCopyBufferToImageInfo2-srcBuffer-00174# @srcBuffer@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-01997# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-VkCopyBufferToImageInfo2-srcBuffer-00176# If @srcBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-00177# @dstImage@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-00178# If @dstImage@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-00179# @dstImage@ /must/+--     have a sample count equal to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180#+--     @dstImageLayout@ /must/ specify the layout of the image subresources+--     of @dstImage@ specified in @pRegions@ at the time this command is+--     executed on a 'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396#+--     @dstImageLayout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageSubresource-01701# The+--     @imageSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageSubresource-01702# The+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-01793# The @imageOffset@+--     and @imageExtent@ members of each element of @pRegions@ /must/+--     respect the image transfer granularity requirements of+--     @commandBuffer@’s command pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-02543# @dstImage@ /must/ not+--     have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-VkCopyBufferToImageInfo2-commandBuffer-04477# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each+--     element of @pRegions@, the @aspectMask@ member of @imageSubresource@+--     /must/ not be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-06223# For each element of+--     @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ ++--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the width of the specified @imageSubresource@+--     of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-06224# For each element of+--     @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ ++--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the height of the specified @imageSubresource@+--     of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-01558# If @dstImage@+--     does not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-01559# If @dstImage@ has+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-VkCopyBufferToImageInfo2-srcImage-00199# If @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and+--     @imageExtent.height@ /must/ be @1@+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-00200# For each element+--     of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ ++--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the depth of the specified @imageSubresource@+--     of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-srcImage-00201# If @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+--     /must/ be @1@+--+-- -   #VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203# If @dstImage@+--     is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ /must/ be a+--     multiple of the compressed texel block width+--+-- -   #VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204# If+--     @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferImageHeight@ /must/ be a+--     multiple of the compressed texel block height+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-00205# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, all members of @imageOffset@ /must/+--     be a multiple of the corresponding dimensions of the compressed+--     texel block+--+-- -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-00206# If @dstImage@ is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+--     of the compressed texel block size in bytes+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageExtent-00207# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.width@ /must/ be a+--     multiple of the compressed texel block width or (@imageExtent.width@+--     + @imageOffset.x@) /must/ equal the width of the specified+--     @imageSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageExtent-00208# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.height@ /must/ be a+--     multiple of the compressed texel block height or+--     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+--     the specified @imageSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-imageExtent-00209# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@imageExtent.depth@+--     + @imageOffset.z@) /must/ equal the depth of the specified+--     @imageSubresource@ of @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-aspectMask-00211# For each element of+--     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-VkCopyBufferToImageInfo2-aspectMask-01560# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @imageSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     (with+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     valid only for image formats with three planes)+--+-- -   #VUID-VkCopyBufferToImageInfo2-baseArrayLayer-00213# If @dstImage@+--     is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each+--     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be+--     @0@ and @imageSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-04725# If @dstImage@ is not+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-04726# If @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of @dstImage@ /must/ be less than or equal to 231-1+--+-- -   #VUID-VkCopyBufferToImageInfo2-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-VkCopyBufferToImageInfo2-srcImage-04053# If @dstImage@ has a+--     depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyBufferToImageInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2'+--+-- -   #VUID-VkCopyBufferToImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter# @srcBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-parameter# @dstImage@ /must/+--     be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter#+--     @dstImageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-parameter# @pRegions@ /must/+--     be a valid pointer to an array of @regionCount@ valid+--     'BufferImageCopy2' structures+--+-- -   #VUID-VkCopyBufferToImageInfo2-regionCount-arraylength#+--     @regionCount@ /must/ be greater than @0@+--+-- -   #VUID-VkCopyBufferToImageInfo2-commonparent# Both of @dstImage@, and+--     @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyBufferToImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR'+data CopyBufferToImageInfo2 = CopyBufferToImageInfo2+  { -- | @srcBuffer@ is the source buffer.+    srcBuffer :: Buffer+  , -- | @dstImage@ is the destination image.+    dstImage :: Image+  , -- | @dstImageLayout@ is the layout of the destination image subresources for+    -- the copy.+    dstImageLayout :: ImageLayout+  , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2' structures+    -- specifying the regions to copy.+    regions :: Vector (SomeStruct BufferImageCopy2)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyBufferToImageInfo2)+#endif+deriving instance Show CopyBufferToImageInfo2++instance ToCStruct CopyBufferToImageInfo2 where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyBufferToImageInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)+    lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2 _) ((Data.Vector.length (regions)) * 72)+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2 _))) (e) . ($ ())) (regions)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2 _)))) (pPRegions')+    lift $ f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)+    f++instance FromCStruct CopyBufferToImageInfo2 where+  peekCStruct p = do+    srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+    dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))+    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))+    regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    pRegions <- peek @(Ptr (BufferImageCopy2 _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2 _))))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2 _)))))+    pure $ CopyBufferToImageInfo2+             srcBuffer dstImage dstImageLayout pRegions'++instance Zero CopyBufferToImageInfo2 where+  zero = CopyBufferToImageInfo2+           zero+           zero+           zero+           mempty+++-- | VkCopyImageToBufferInfo2 - Structure specifying parameters of an image+-- to buffer copy command+--+-- == Valid Usage+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-04566# If the image region+--     specified by each element of @pRegions@ does not contain+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, it /must/ be contained within the specified+--     @imageSubresource@ of @srcImage@+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image+--     region specified by each element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, the rotated source region as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>+--     /must/ be contained within @srcImage@+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#blocked-image blocked image>+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ /must/ be of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206# If any element of+--     @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ /must/ not have a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-00183# @dstBuffer@ /must/ be+--     large enough to contain all buffer locations that are accessed+--     according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-00184# The union of all+--     source regions, and the union of all destination regions, specified+--     by the elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00186# @srcImage@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-01998# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00187# If @srcImage@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyImageToBufferInfo2-dstBuffer-00191# @dstBuffer@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-VkCopyImageToBufferInfo2-dstBuffer-00192# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00188# @srcImage@ /must/+--     have a sample count equal to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189#+--     @srcImageLayout@ /must/ specify the layout of the image subresources+--     of @srcImage@ specified in @pRegions@ at the time this command is+--     executed on a 'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397#+--     @srcImageLayout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageSubresource-01703# The+--     @imageSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageSubresource-01704# The+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-01794# The @imageOffset@+--     and @imageExtent@ members of each element of @pRegions@ /must/+--     respect the image transfer granularity requirements of+--     @commandBuffer@’s command pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-02544# @srcImage@ /must/ not+--     have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-00197# For each element+--     of @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ ++--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the width of the specified @imageSubresource@+--     of @srcImage@+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-00198# For each element+--     of @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ ++--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the height of the specified @imageSubresource@+--     of @srcImage@+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-01558# If {imageparam}+--     does not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-01559# If {imageparam}+--     has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00199# If {imageparam} is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and+--     @imageExtent.height@ /must/ be @1@+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-00200# For each element+--     of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ ++--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the depth of the specified @imageSubresource@+--     of {imageparam}+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00201# If {imageparam} is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+--     /must/ be @1@+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203# If+--     {imageparam} is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ /must/ be a+--     multiple of the compressed texel block width+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204# If+--     {imageparam} is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferImageHeight@ /must/ be a+--     multiple of the compressed texel block height+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-00205# If {imageparam} is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, all members of @imageOffset@ /must/+--     be a multiple of the corresponding dimensions of the compressed+--     texel block+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-00206# If {imageparam}+--     is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+--     of the compressed texel block size in bytes+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageExtent-00207# If {imageparam} is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.width@ /must/ be a+--     multiple of the compressed texel block width or (@imageExtent.width@+--     + @imageOffset.x@) /must/ equal the width of the specified+--     @imageSubresource@ of {imageparam}+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageExtent-00208# If {imageparam} is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.height@ /must/ be a+--     multiple of the compressed texel block height or+--     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+--     the specified @imageSubresource@ of {imageparam}+--+-- -   #VUID-VkCopyImageToBufferInfo2-imageExtent-00209# If {imageparam} is+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @imageExtent.depth@ /must/ be a+--     multiple of the compressed texel block depth or (@imageExtent.depth@+--     + @imageOffset.z@) /must/ equal the depth of the specified+--     @imageSubresource@ of {imageparam}+--+-- -   #VUID-VkCopyImageToBufferInfo2-aspectMask-00211# For each element of+--     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+--     present in {imageparam}+--+-- -   #VUID-VkCopyImageToBufferInfo2-aspectMask-01560# If {imageparam} has+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @imageSubresource.aspectMask@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     (with+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--     valid only for image formats with three planes)+--+-- -   #VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213# If {imageparam}+--     is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each+--     element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be+--     @0@ and @imageSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-04725# If {imageparam} is+--     not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ multiplied by the+--     texel block size of {imageparam} /must/ be less than or equal to+--     231-1+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-04726# If {imageparam} is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+--     for each element of @pRegions@, @bufferRowLength@ divided by the+--     compressed texel block width and then multiplied by the texel block+--     size of {imageparam} /must/ be less than or equal to 231-1+--+-- -   #VUID-VkCopyImageToBufferInfo2-commandBuffer-04052# If the queue+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which+--     @commandBuffer@ was allocated from does not support+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-04053# If {imageparam} has a+--     depth\/stencil format, the @bufferOffset@ member of any element of+--     @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyImageToBufferInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2'+--+-- -   #VUID-VkCopyImageToBufferInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-parameter# @srcImage@ /must/+--     be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter#+--     @srcImageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter# @dstBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-parameter# @pRegions@ /must/+--     be a valid pointer to an array of @regionCount@ valid+--     'BufferImageCopy2' structures+--+-- -   #VUID-VkCopyImageToBufferInfo2-regionCount-arraylength#+--     @regionCount@ /must/ be greater than @0@+--+-- -   #VUID-VkCopyImageToBufferInfo2-commonparent# Both of @dstBuffer@,+--     and @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyImageToBuffer2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR'+data CopyImageToBufferInfo2 = CopyImageToBufferInfo2+  { -- | @srcImage@ is the source image.+    srcImage :: Image+  , -- | @srcImageLayout@ is the layout of the source image subresources for the+    -- copy.+    srcImageLayout :: ImageLayout+  , -- | @dstBuffer@ is the destination buffer.+    dstBuffer :: Buffer+  , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2' structures+    -- specifying the regions to copy.+    regions :: Vector (SomeStruct BufferImageCopy2)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyImageToBufferInfo2)+#endif+deriving instance Show CopyImageToBufferInfo2++instance ToCStruct CopyImageToBufferInfo2 where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyImageToBufferInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+    lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (dstBuffer)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2 _) ((Data.Vector.length (regions)) * 72)+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2 _))) (e) . ($ ())) (regions)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2 _)))) (pPRegions')+    lift $ f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)+    f++instance FromCStruct CopyImageToBufferInfo2 where+  peekCStruct p = do+    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+    dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))+    regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    pRegions <- peek @(Ptr (BufferImageCopy2 _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2 _))))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2 _)))))+    pure $ CopyImageToBufferInfo2+             srcImage srcImageLayout dstBuffer pRegions'++instance Zero CopyImageToBufferInfo2 where+  zero = CopyImageToBufferInfo2+           zero+           zero+           zero+           mempty+++-- | VkResolveImageInfo2 - Structure specifying parameters of resolve image+-- command+--+-- == Valid Usage+--+-- -   #VUID-VkResolveImageInfo2-pRegions-00255# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-VkResolveImageInfo2-srcImage-00256# If @srcImage@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkResolveImageInfo2-srcImage-00257# @srcImage@ /must/ have a+--     sample count equal to any valid sample count value other than+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkResolveImageInfo2-dstImage-00258# If @dstImage@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkResolveImageInfo2-dstImage-00259# @dstImage@ /must/ have a+--     sample count equal to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkResolveImageInfo2-srcImageLayout-00260# @srcImageLayout@+--     /must/ specify the layout of the image subresources of @srcImage@+--     specified in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkResolveImageInfo2-srcImageLayout-01400# @srcImageLayout@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-VkResolveImageInfo2-dstImageLayout-00262# @dstImageLayout@+--     /must/ specify the layout of the image subresources of @dstImage@+--     specified in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-VkResolveImageInfo2-dstImageLayout-01401# @dstImageLayout@+--     /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-VkResolveImageInfo2-dstImage-02003# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-VkResolveImageInfo2-linearColorAttachment-06519# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+--     feature is enabled and the image is created with+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- -   #VUID-VkResolveImageInfo2-srcImage-01386# @srcImage@ and @dstImage@+--     /must/ have been created with the same image format+--+-- -   #VUID-VkResolveImageInfo2-srcSubresource-01709# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-VkResolveImageInfo2-dstSubresource-01710# The+--     @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- -   #VUID-VkResolveImageInfo2-srcSubresource-01711# The+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created+--+-- -   #VUID-VkResolveImageInfo2-dstSubresource-01712# The+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created+--+-- -   #VUID-VkResolveImageInfo2-dstImage-02546# @dstImage@ and @srcImage@+--     /must/ not have been created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-VkResolveImageInfo2-srcImage-04446# If either @srcImage@ or+--     @dstImage@ are of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+--     @srcSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkResolveImageInfo2-srcImage-04447# If either @srcImage@ or+--     @dstImage@ are of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+--     @dstSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-VkResolveImageInfo2-srcOffset-00269# For each element of+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkResolveImageInfo2-srcOffset-00270# For each element of+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkResolveImageInfo2-srcImage-00271# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-VkResolveImageInfo2-srcOffset-00272# For each element of+--     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-VkResolveImageInfo2-srcImage-00273# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-VkResolveImageInfo2-dstOffset-00274# For each element of+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkResolveImageInfo2-dstOffset-00275# For each element of+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkResolveImageInfo2-dstImage-00276# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-VkResolveImageInfo2-dstOffset-00277# For each element of+--     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-VkResolveImageInfo2-dstImage-00278# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkResolveImageInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2'+--+-- -   #VUID-VkResolveImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkResolveImageInfo2-srcImage-parameter# @srcImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkResolveImageInfo2-srcImageLayout-parameter# @srcImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkResolveImageInfo2-dstImage-parameter# @dstImage@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkResolveImageInfo2-dstImageLayout-parameter# @dstImageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkResolveImageInfo2-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'ImageResolve2'+--     structures+--+-- -   #VUID-VkResolveImageInfo2-regionCount-arraylength# @regionCount@+--     /must/ be greater than @0@+--+-- -   #VUID-VkResolveImageInfo2-commonparent# Both of @dstImage@, and+--     @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdResolveImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR'+data ResolveImageInfo2 = ResolveImageInfo2+  { -- | @srcImage@ is the source image.+    srcImage :: Image+  , -- | @srcImageLayout@ is the layout of the source image subresources for the+    -- resolve.+    srcImageLayout :: ImageLayout+  , -- | @dstImage@ is the destination image.+    dstImage :: Image+  , -- | @dstImageLayout@ is the layout of the destination image subresources for+    -- the resolve.+    dstImageLayout :: ImageLayout+  , -- | @pRegions@ is a pointer to an array of 'ImageResolve2' structures+    -- specifying the regions to resolve.+    regions :: Vector ImageResolve2+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ResolveImageInfo2)+#endif+deriving instance Show ResolveImageInfo2++instance ToCStruct ResolveImageInfo2 where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ResolveImageInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @ImageResolve2 ((Data.Vector.length (regions)) * 88)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageResolve2) (e)) (regions)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2))) (pPRegions')+    lift $ f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+    f++instance FromCStruct ResolveImageInfo2 where+  peekCStruct p = do+    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+    dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+    regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    pRegions <- peek @(Ptr ImageResolve2) ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2)))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageResolve2 ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageResolve2)))+    pure $ ResolveImageInfo2+             srcImage srcImageLayout dstImage dstImageLayout pRegions'++instance Zero ResolveImageInfo2 where+  zero = ResolveImageInfo2+           zero+           zero+           zero+           zero+           mempty+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot view
@@ -0,0 +1,111 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_copy_commands2"+module Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2  ( BlitImageInfo2+                                                          , BufferCopy2+                                                          , BufferImageCopy2+                                                          , CopyBufferInfo2+                                                          , CopyBufferToImageInfo2+                                                          , CopyImageInfo2+                                                          , CopyImageToBufferInfo2+                                                          , ImageBlit2+                                                          , ImageCopy2+                                                          , ImageResolve2+                                                          , ResolveImageInfo2+                                                          ) 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 BlitImageInfo2++instance ToCStruct BlitImageInfo2+instance Show BlitImageInfo2++instance FromCStruct BlitImageInfo2+++data BufferCopy2++instance ToCStruct BufferCopy2+instance Show BufferCopy2++instance FromCStruct BufferCopy2+++type role BufferImageCopy2 nominal+data BufferImageCopy2 (es :: [Type])++instance (Extendss BufferImageCopy2 es, PokeChain es) => ToCStruct (BufferImageCopy2 es)+instance Show (Chain es) => Show (BufferImageCopy2 es)++instance (Extendss BufferImageCopy2 es, PeekChain es) => FromCStruct (BufferImageCopy2 es)+++data CopyBufferInfo2++instance ToCStruct CopyBufferInfo2+instance Show CopyBufferInfo2++instance FromCStruct CopyBufferInfo2+++data CopyBufferToImageInfo2++instance ToCStruct CopyBufferToImageInfo2+instance Show CopyBufferToImageInfo2++instance FromCStruct CopyBufferToImageInfo2+++data CopyImageInfo2++instance ToCStruct CopyImageInfo2+instance Show CopyImageInfo2++instance FromCStruct CopyImageInfo2+++data CopyImageToBufferInfo2++instance ToCStruct CopyImageToBufferInfo2+instance Show CopyImageToBufferInfo2++instance FromCStruct CopyImageToBufferInfo2+++type role ImageBlit2 nominal+data ImageBlit2 (es :: [Type])++instance (Extendss ImageBlit2 es, PokeChain es) => ToCStruct (ImageBlit2 es)+instance Show (Chain es) => Show (ImageBlit2 es)++instance (Extendss ImageBlit2 es, PeekChain es) => FromCStruct (ImageBlit2 es)+++data ImageCopy2++instance ToCStruct ImageCopy2+instance Show ImageCopy2++instance FromCStruct ImageCopy2+++data ImageResolve2++instance ToCStruct ImageResolve2+instance Show ImageResolve2++instance FromCStruct ImageResolve2+++data ResolveImageInfo2++instance ToCStruct ResolveImageInfo2+instance Show ResolveImageInfo2++instance FromCStruct ResolveImageInfo2+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -0,0 +1,1524 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_dynamic_rendering"+module Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering  ( cmdBeginRendering+                                                             , cmdUseRendering+                                                             , cmdEndRendering+                                                             , PipelineRenderingCreateInfo(..)+                                                             , RenderingInfo(..)+                                                             , RenderingAttachmentInfo(..)+                                                             , PhysicalDeviceDynamicRenderingFeatures(..)+                                                             , CommandBufferInheritanceRenderingInfo(..)+                                                             , AttachmentStoreOp(..)+                                                             , StructureType(..)+                                                             , RenderingFlagBits(..)+                                                             , RenderingFlags+                                                             ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Type.Equality ((:~:)(Refl))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.Core10.Enums.AttachmentLoadOp (AttachmentLoadOp)+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.CStruct.Extends (Chain)+import Vulkan.Core10.CommandBufferBuilding (ClearValue)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBeginRendering))+import Vulkan.Dynamic (DeviceCmds(pVkCmdEndRendering))+import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.Enums.Format (Format)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Handles (ImageView)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)+import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO))+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(..))+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlagBits(..))+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBeginRendering+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfo) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfo) -> IO ()++-- | vkCmdBeginRendering - Begin a dynamic render pass instance+--+-- = Description+--+-- After beginning a render pass instance, the command buffer is ready to+-- record+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing draw commands>.+--+-- If @pRenderingInfo->flags@ includes+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT' then this+-- render pass is resumed from a render pass instance that has been+-- suspended earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBeginRendering-dynamicRendering-06446# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdBeginRendering-commandBuffer-06068# If @commandBuffer@ is+--     a secondary command buffer, @pRenderingInfo->flags@ /must/ not+--     include+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBeginRendering-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBeginRendering-pRenderingInfo-parameter# @pRenderingInfo@+--     /must/ be a valid pointer to a valid 'RenderingInfo' structure+--+-- -   #VUID-vkCmdBeginRendering-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-vkCmdBeginRendering-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginRendering-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderingInfo'+cmdBeginRendering :: forall a io+                   . (Extendss RenderingInfo a, PokeChain a, MonadIO io)+                  => -- | @commandBuffer@ is the command buffer in which to record the command.+                     CommandBuffer+                  -> -- | @pRenderingInfo@ is a pointer to a 'RenderingInfo' structure specifying+                     -- details of the render pass instance to begin.+                     (RenderingInfo a)+                  -> io ()+cmdBeginRendering commandBuffer renderingInfo = liftIO . evalContT $ do+  let vkCmdBeginRenderingPtr = pVkCmdBeginRendering (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBeginRenderingPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRendering is null" Nothing Nothing+  let vkCmdBeginRendering' = mkVkCmdBeginRendering vkCmdBeginRenderingPtr+  pRenderingInfo <- ContT $ withCStruct (renderingInfo)+  lift $ traceAroundEvent "vkCmdBeginRendering" (vkCmdBeginRendering' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderingInfo))+  pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginRendering' and 'cmdEndRendering'+--+-- Note that 'cmdEndRendering' is *not* called if an exception is thrown by+-- the inner action.+cmdUseRendering :: forall a io r . (Extendss RenderingInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfo a -> io r -> io r+cmdUseRendering commandBuffer pRenderingInfo a =+  (cmdBeginRendering commandBuffer pRenderingInfo) *> a <* (cmdEndRendering commandBuffer)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdEndRendering+  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()++-- | vkCmdEndRendering - End a dynamic render pass instance+--+-- = Description+--+-- If the value of @pRenderingInfo->flags@ used to begin this render pass+-- instance included+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_SUSPENDING_BIT', then+-- this render pass is suspended and will be resumed later in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdEndRendering-None-06161# The current render pass instance+--     /must/ have been begun with 'cmdBeginRendering'+--+-- -   #VUID-vkCmdEndRendering-commandBuffer-06162# The current render pass+--     instance /must/ have been begun in @commandBuffer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdEndRendering-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdEndRendering-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-vkCmdEndRendering-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdEndRendering-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdEndRendering :: forall io+                 . (MonadIO io)+                => -- | @commandBuffer@ is the command buffer in which to record the command.+                   CommandBuffer+                -> io ()+cmdEndRendering commandBuffer = liftIO $ do+  let vkCmdEndRenderingPtr = pVkCmdEndRendering (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdEndRenderingPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRendering is null" Nothing Nothing+  let vkCmdEndRendering' = mkVkCmdEndRendering vkCmdEndRenderingPtr+  traceAroundEvent "vkCmdEndRendering" (vkCmdEndRendering' (commandBufferHandle (commandBuffer)))+  pure $ ()+++-- | VkPipelineRenderingCreateInfo - Structure specifying attachment formats+--+-- = Description+--+-- When a pipeline is created without a 'Vulkan.Core10.Handles.RenderPass',+-- if this structure is present in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it specifies the+-- view mask and format of attachments used for rendering. If this+-- structure is not specified, and the pipeline does not include a+-- 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and+-- @colorAttachmentCount@ are @0@, and @depthAttachmentFormat@ and+-- @stencilAttachmentFormat@ are+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. If a graphics pipeline is+-- created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters of+-- this structure are ignored.+--+-- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of+-- @pColorAttachmentFormats@ is+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the+-- corresponding attachment is unused within the render pass. Valid formats+-- indicate that an attachment /can/ be used - but it is still valid to set+-- the attachment to @NULL@ when beginning rendering.+--+-- == Valid Usage+--+-- -   #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06495#+--     If any element of @pColorAttachmentFormats@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that includes either+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- -   #VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06065# If+--     @depthAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that include+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-06164#+--     If @stencilAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that include+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06165# If+--     @depthAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and+--     @stencilAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',+--     @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@+--+-- -   #VUID-VkPipelineRenderingCreateInfo-multiview-06066# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+--     feature is not enabled, @viewMask@ /must/ be @0@+--+-- -   #VUID-VkPipelineRenderingCreateInfo-viewMask-06067# The index of the+--     most significant bit in @viewMask@ /must/ be less than+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkPipelineRenderingCreateInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO'+--+-- -   #VUID-VkPipelineRenderingCreateInfo-pColorAttachmentFormats-parameter#+--     If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@+--     /must/ be a valid pointer to an array of @colorAttachmentCount@+--     valid 'Vulkan.Core10.Enums.Format.Format' values+--+-- -   #VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-parameter#+--     @depthAttachmentFormat@ /must/ be a valid+--     'Vulkan.Core10.Enums.Format.Format' value+--+-- -   #VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-parameter#+--     @stencilAttachmentFormat@ /must/ be a valid+--     'Vulkan.Core10.Enums.Format.Format' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineRenderingCreateInfo = PipelineRenderingCreateInfo+  { -- | @viewMask@ is the viewMask used for rendering.+    viewMask :: Word32+  , -- | @pColorAttachmentFormats@ is a pointer to an array of+    -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color+    -- attachments used in this pipeline.+    colorAttachmentFormats :: Vector Format+  , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+    -- defining the format of the depth attachment used in this pipeline.+    depthAttachmentFormat :: Format+  , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+    -- defining the format of the stencil attachment used in this pipeline.+    stencilAttachmentFormat :: Format+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineRenderingCreateInfo)+#endif+deriving instance Show PipelineRenderingCreateInfo++instance ToCStruct PipelineRenderingCreateInfo where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineRenderingCreateInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (viewMask)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))+    pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')+    lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (depthAttachmentFormat)+    lift $ poke ((p `plusPtr` 36 :: Ptr Format)) (stencilAttachmentFormat)+    lift $ f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Format)) (zero)+    poke ((p `plusPtr` 36 :: Ptr Format)) (zero)+    f++instance FromCStruct PipelineRenderingCreateInfo where+  peekCStruct p = do+    viewMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 24 :: Ptr (Ptr Format)))+    pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))+    depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))+    stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format))+    pure $ PipelineRenderingCreateInfo+             viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat++instance Zero PipelineRenderingCreateInfo where+  zero = PipelineRenderingCreateInfo+           zero+           mempty+           zero+           zero+++-- | VkRenderingInfo - Structure specifying render pass instance begin info+--+-- = Description+--+-- If @viewMask@ is not @0@, multiview is enabled.+--+-- If there is an instance of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- included in the @pNext@ chain and its @deviceCount@ member is not @0@,+-- then @renderArea@ is ignored, and the render area is defined per-device+-- by that structure.+--+-- Each element of the @pColorAttachments@ array corresponds to an output+-- location in the shader, i.e. if the shader declares an output variable+-- decorated with a @Location@ value of __X__, then it uses the attachment+-- provided in @pColorAttachments@[__X__]. If the @imageView@ member of any+-- element of @pColorAttachments@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', writes to the corresponding+-- location by a fragment are discarded.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderingInfo-viewMask-06069# If @viewMask@ is @0@,+--     @layerCount@ /must/ not be @0@+--+-- -   #VUID-VkRenderingInfo-imageView-06070# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>+--     nor the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>+--     extensions are enabled, @imageView@ members of @pDepthAttachment@,+--     @pStencilAttachment@, and elements of @pColorAttachments@ that are+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been+--     created with the same @sampleCount@+--+-- -   #VUID-VkRenderingInfo-pNext-06077# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.x@ /must/ be greater than or equal to 0+--+-- -   #VUID-VkRenderingInfo-pNext-06078# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.y@ /must/ be greater than or equal to 0+--+-- -   #VUID-VkRenderingInfo-pNext-06079# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0, the width of+--     the @imageView@ member of any element of @pColorAttachments@,+--     @pDepthAttachment@, or @pStencilAttachment@ that is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or+--     equal to @renderArea.offset.x@ + @renderArea.extent.width@+--+-- -   #VUID-VkRenderingInfo-pNext-06080# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0, the height of+--     the @imageView@ member of any element of @pColorAttachments@,+--     @pDepthAttachment@, or @pStencilAttachment@ that is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or+--     equal to @renderArea.offset.y@ + @renderArea.extent.height@+--+-- -   #VUID-VkRenderingInfo-pNext-06083# If the @pNext@ chain contains+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     the width of the @imageView@ member of any element of+--     @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@+--     that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be+--     greater than or equal to the sum of the @offset.x@ and+--     @extent.width@ members of each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-pNext-06084# If the @pNext@ chain contains+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     the height of the @imageView@ member of any element of+--     @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@+--     that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be+--     greater than or equal to the sum of the @offset.y@ and+--     @extent.height@ members of each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06085# If neither+--     @pDepthAttachment@ or @pStencilAttachment@ are @NULL@ and the+--     @imageView@ member of either structure is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @imageView@ member of+--     each structure /must/ be the same+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06086# If neither+--     @pDepthAttachment@ or @pStencilAttachment@ are @NULL@, and the+--     @resolveMode@ member of each is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the+--     @resolveImageView@ member of each structure /must/ be the same+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06087# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', that @imageView@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06088# If @pDepthAttachment@+--     is not @NULL@ and @pDepthAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @pDepthAttachment->imageView@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkRenderingInfo-pStencilAttachment-06089# If+--     @pStencilAttachment@ is not @NULL@ and+--     @pStencilAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @pStencilAttachment->imageView@ /must/ have been created with a+--     stencil usage including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06090# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of+--     that element of @pColorAttachments@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06091# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@+--     member of that element of @pColorAttachments@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its+--     @resolveImageLayout@ member /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06092# If @pDepthAttachment@+--     is not @NULL@ and @pDepthAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pDepthAttachment->layout@+--     /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06093# If @pDepthAttachment@+--     is not @NULL@, @pDepthAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and+--     @pDepthAttachment->resolveMode@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @pDepthAttachment->resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pStencilAttachment-06094# If+--     @pStencilAttachment@ is not @NULL@ and+--     @pStencilAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @pStencilAttachment->layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pStencilAttachment-06095# If+--     @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+--     @pStencilAttachment->resolveMode@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @pStencilAttachment->resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06096# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of+--     that element of @pColorAttachments@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06097# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@+--     member of that element of @pColorAttachments@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its+--     @resolveImageLayout@ member /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06098# If @pDepthAttachment@+--     is not @NULL@, @pDepthAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and+--     @pDepthAttachment->resolveMode@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @pDepthAttachment->resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pStencilAttachment-06099# If+--     @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+--     @pStencilAttachment->resolveMode@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @pStencilAttachment->resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06100# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of+--     that element of @pColorAttachments@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06101# If+--     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+--     element of @pColorAttachments@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@+--     member of that element of @pColorAttachments@ is not+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its+--     @resolveImageLayout@ member /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06102# If @pDepthAttachment@+--     is not @NULL@ and @pDepthAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @pDepthAttachment->resolveMode@ /must/ be one of the bits set in+--     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedDepthResolveModes@+--+-- -   #VUID-VkRenderingInfo-pStencilAttachment-06103# If+--     @pStencilAttachment@ is not @NULL@ and+--     @pStencilAttachment->imageView@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @pStencilAttachment->resolveMode@ /must/ be one of the bits set in+--     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedStencilResolveModes@+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06104# If @pDepthAttachment@+--     or @pStencilAttachment@ are both not @NULL@,+--     @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@+--     are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+--     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', the @resolveMode@ of both+--     structures /must/ be the same value+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-06105# If @pDepthAttachment@+--     or @pStencilAttachment@ are both not @NULL@,+--     @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@+--     are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and the @resolveMode@ of+--     neither structure is+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the+--     @resolveMode@ of both structures /must/ be the same value+--+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-06106#+--     @colorAttachmentCount@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxColorAttachments@+--+-- -   #VUID-VkRenderingInfo-imageView-06107# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>+--     is not enabled, valid @imageView@ and @resolveImageView@ members of+--     @pDepthAttachment@, @pStencilAttachment@, and each element of+--     @pColorAttachments@ /must/ be a 'Vulkan.Core10.Handles.ImageView'+--     created with+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- -   #VUID-VkRenderingInfo-imageView-06108# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,+--     @imageView@ /must/ have a @layerCount@ greater than or equal to the+--     index of the most significant bit in @viewMask@+--+-- -   #VUID-VkRenderingInfo-imageView-06109# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,+--     @imageView@ /must/ have a @layerCount@ equal to @1@+--+-- -   #VUID-VkRenderingInfo-pNext-06112# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0 and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     width greater than or equal to+--     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)+--+-- -   #VUID-VkRenderingInfo-pNext-06113# If the @pNext@ chain contains a+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     structure, its @deviceRenderAreaCount@ member is not 0, and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     width greater than or equal to+--     \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)+--     for each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-pNext-06114# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0 and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     height greater than or equal to+--     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)+--+-- -   #VUID-VkRenderingInfo-pNext-06115# If the @pNext@ chain contains a+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     structure, its @deviceRenderAreaCount@ member is not 0, and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     height greater than or equal to+--     \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)+--     for each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-imageView-06116# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to+--     the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,+--     @pStencilAttachment@, or any element of @pColorAttachments@+--+-- -   #VUID-VkRenderingInfo-pNext-06119# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0 and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     width greater than or equal to+--     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)+--+-- -   #VUID-VkRenderingInfo-pNext-06120# If the @pNext@ chain contains a+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     structure, its @deviceRenderAreaCount@ member is not 0, and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     width greater than or equal to+--     \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)+--     for each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-pNext-06121# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0 and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     height greater than or equal to+--     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)+--+-- -   #VUID-VkRenderingInfo-pNext-06122# If the @pNext@ chain contains a+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     structure, its @deviceRenderAreaCount@ member is not 0, and the+--     @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+--     height greater than or equal to+--     \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)+--     for each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-imageView-06123# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,+--     @imageView@ /must/ have a @layerCount@ that is either equal to @1@+--     or greater than or equal to @layerCount@+--+-- -   #VUID-VkRenderingInfo-imageView-06124# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,+--     @imageView@ /must/ have a @layerCount@ that either equal to @1@ or+--     greater than or equal to the index of the most significant bit in+--     @viewMask@+--+-- -   #VUID-VkRenderingInfo-imageView-06125# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to+--     the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,+--     @pStencilAttachment@, or any element of @pColorAttachments@+--+-- -   #VUID-VkRenderingInfo-imageView-06126# If the @imageView@ member of+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to+--     the @imageView@ member of a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+--     structure included in the @pNext@ chain+--+-- -   #VUID-VkRenderingInfo-multiview-06127# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+--     feature is not enabled, @viewMask@ /must/ be @0@+--+-- -   #VUID-VkRenderingInfo-viewMask-06128# The index of the most+--     significant bit in @viewMask@ /must/ be less than+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderingInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO'+--+-- -   #VUID-VkRenderingInfo-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.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--+-- -   #VUID-VkRenderingInfo-sType-unique# The @sType@ value of each struct+--     in the @pNext@ chain /must/ be unique+--+-- -   #VUID-VkRenderingInfo-flags-parameter# @flags@ /must/ be a valid+--     combination of+--     'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits' values+--+-- -   #VUID-VkRenderingInfo-pColorAttachments-parameter# If+--     @colorAttachmentCount@ is not @0@, @pColorAttachments@ /must/ be a+--     valid pointer to an array of @colorAttachmentCount@ valid+--     'RenderingAttachmentInfo' structures+--+-- -   #VUID-VkRenderingInfo-pDepthAttachment-parameter# If+--     @pDepthAttachment@ is not @NULL@, @pDepthAttachment@ /must/ be a+--     valid pointer to a valid 'RenderingAttachmentInfo' structure+--+-- -   #VUID-VkRenderingInfo-pStencilAttachment-parameter# If+--     @pStencilAttachment@ is not @NULL@, @pStencilAttachment@ /must/ be a+--     valid pointer to a valid 'RenderingAttachmentInfo' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'RenderingAttachmentInfo',+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRendering',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+data RenderingInfo (es :: [Type]) = RenderingInfo+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @flags@ is a bitmask of+    -- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits'.+    flags :: RenderingFlags+  , -- | @renderArea@ is the render area that is affected by the render pass+    -- instance.+    renderArea :: Rect2D+  , -- | @layerCount@ is the number of layers rendered to in each attachment when+    -- @viewMask@ is @0@.+    layerCount :: Word32+  , -- | @viewMask@ is the view mask indicating the indices of attachment layers+    -- that will be rendered when it is not @0@.+    viewMask :: Word32+  , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@+    -- 'RenderingAttachmentInfo' structures describing any color attachments+    -- used.+    colorAttachments :: Vector RenderingAttachmentInfo+  , -- | @pDepthAttachment@ is a pointer to a 'RenderingAttachmentInfo' structure+    -- describing a depth attachment.+    depthAttachment :: Maybe RenderingAttachmentInfo+  , -- | @pStencilAttachment@ is a pointer to a 'RenderingAttachmentInfo'+    -- structure describing a stencil attachment.+    stencilAttachment :: Maybe RenderingAttachmentInfo+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (RenderingInfo es)++instance Extensible RenderingInfo where+  extensibleTypeName = "RenderingInfo"+  setNext RenderingInfo{..} next' = RenderingInfo{next = next', ..}+  getNext RenderingInfo{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingInfo e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f+    | Just Refl <- eqT @e @RenderingFragmentDensityMapAttachmentInfoEXT = Just f+    | Just Refl <- eqT @e @RenderingFragmentShadingRateAttachmentInfoKHR = Just f+    | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f+    | otherwise = Nothing++instance (Extendss RenderingInfo es, PokeChain es) => ToCStruct (RenderingInfo es) where+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderingInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlags)) (flags)+    lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (renderArea)+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (layerCount)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (viewMask)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachments)) :: Word32))+    pPColorAttachments' <- ContT $ allocaBytes @RenderingAttachmentInfo ((Data.Vector.length (colorAttachments)) * 72)+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPColorAttachments' `plusPtr` (72 * (i)) :: Ptr RenderingAttachmentInfo) (e) . ($ ())) (colorAttachments)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr RenderingAttachmentInfo))) (pPColorAttachments')+    pDepthAttachment'' <- case (depthAttachment) of+      Nothing -> pure nullPtr+      Just j -> ContT $ withCStruct (j)+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr RenderingAttachmentInfo))) pDepthAttachment''+    pStencilAttachment'' <- case (stencilAttachment) of+      Nothing -> pure nullPtr+      Just j -> ContT $ withCStruct (j)+    lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr RenderingAttachmentInfo))) pStencilAttachment''+    lift $ f+  cStructSize = 72+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (zero)+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    lift $ f++instance es ~ '[] => Zero (RenderingInfo es) where+  zero = RenderingInfo+           ()+           zero+           zero+           zero+           zero+           mempty+           Nothing+           Nothing+++-- | VkRenderingAttachmentInfo - Structure specifying attachment information+--+-- = Description+--+-- Values in @imageView@ are loaded and stored according to the values of+-- @loadOp@ and @storeOp@, within the render area for each device specified+-- in 'RenderingInfo'. If @imageView@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', other members of this+-- structure are ignored; writes to this attachment will be discarded, and+-- no load, store, or resolve operations will be performed.+--+-- If @resolveMode@ is+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then+-- @resolveImageView@ is ignored. If @resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', values in+-- @resolveImageView@ within the render area become undefined once+-- rendering begins. At the end of rendering, the color values written to+-- each pixel location in @imageView@ will be resolved according to+-- @resolveMode@ and stored into the the same location in+-- @resolveImageView@.+--+-- Note+--+-- The resolve mode and store operation are independent; it is valid to+-- write both resolved and unresolved values, and equally valid to discard+-- the unresolved values while writing the resolved ones.+--+-- Store and resolve operations are only performed at the end of a render+-- pass instance that does not specify the+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_SUSPENDING_BIT_KHR'+-- flag.+--+-- Load operations are only performed at the beginning of a render pass+-- instance that does not specify the+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT_KHR' flag.+--+-- Image contents at the end of a suspended render pass instance remain+-- defined for access by a resuming render pass instance.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06129# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has a non-integer+--     color format, @resolveMode@ /must/ be+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_AVERAGE_BIT'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06130# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has an integer+--     color format, @resolveMode@ /must/ be+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_SAMPLE_ZERO_BIT'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06132# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @imageView@ /must/ not have a sample count of+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06133# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageView@ /must/ have a sample count of+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06134# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @imageView@ and @resolveImageView@ /must/ have the same+--     'Vulkan.Core10.Enums.Format.Format'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06135# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06136# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06137# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06138# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+--     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06139# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06140# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06141# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06142# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06143# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06144# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06145# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06146# If @imageView@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+--     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+--     @resolveImageLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderingAttachmentInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO'+--+-- -   #VUID-VkRenderingAttachmentInfo-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-parameter# If @imageView@+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/+--     be a valid 'Vulkan.Core10.Handles.ImageView' handle+--+-- -   #VUID-VkRenderingAttachmentInfo-imageLayout-parameter# @imageLayout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-parameter# If+--     @resolveMode@ is not @0@, @resolveMode@ /must/ be a valid+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+--+-- -   #VUID-VkRenderingAttachmentInfo-resolveImageView-parameter# If+--     @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @resolveImageView@ /must/ be a valid+--     'Vulkan.Core10.Handles.ImageView' handle+--+-- -   #VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter#+--     @resolveImageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-VkRenderingAttachmentInfo-loadOp-parameter# @loadOp@ /must/ be+--     a valid 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'+--     value+--+-- -   #VUID-VkRenderingAttachmentInfo-storeOp-parameter# @storeOp@ /must/+--     be a valid 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'+--     value+--+-- -   #VUID-VkRenderingAttachmentInfo-clearValue-parameter# @clearValue@+--     /must/ be a valid 'Vulkan.Core10.CommandBufferBuilding.ClearValue'+--     union+--+-- -   #VUID-VkRenderingAttachmentInfo-commonparent# Both of @imageView@,+--     and @resolveImageView@ 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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp',+-- 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp',+-- 'Vulkan.Core10.CommandBufferBuilding.ClearValue',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView', 'RenderingInfo',+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderingAttachmentInfo = RenderingAttachmentInfo+  { -- | @imageView@ is the image view that will be used for rendering.+    imageView :: ImageView+  , -- | @imageLayout@ is the layout that @imageView@ will be in during+    -- rendering.+    imageLayout :: ImageLayout+  , -- | @resolveMode@ is a+    -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+    -- defining how multisampled data written to @imageView@ will be resolved.+    resolveMode :: ResolveModeFlagBits+  , -- | @resolveImageView@ is an image view used to write resolved multisample+    -- data at the end of rendering.+    resolveImageView :: ImageView+  , -- | @resolveImageLayout@ is the layout that @resolveImageView@ will be in+    -- during rendering.+    resolveImageLayout :: ImageLayout+  , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'+    -- value specifying how the contents of @imageView@ are treated at the+    -- start of the render pass instance.+    loadOp :: AttachmentLoadOp+  , -- | @storeOp@ is a 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'+    -- value specifying how the contents of @imageView@ are treated at the end+    -- of the render pass instance.+    storeOp :: AttachmentStoreOp+  , -- | @clearValue@ is a 'Vulkan.Core10.CommandBufferBuilding.ClearValue'+    -- structure defining values used to clear @imageView@ when @loadOp@ is+    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'.+    clearValue :: ClearValue+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingAttachmentInfo)+#endif+deriving instance Show RenderingAttachmentInfo++instance ToCStruct RenderingAttachmentInfo where+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderingAttachmentInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)+    lift $ poke ((p `plusPtr` 28 :: Ptr ResolveModeFlagBits)) (resolveMode)+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageView)) (resolveImageView)+    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (resolveImageLayout)+    lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (loadOp)+    lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (storeOp)+    ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (clearValue) . ($ ())+    lift $ f+  cStructSize = 72+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+    lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (zero)+    lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (zero)+    ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (zero) . ($ ())+    lift $ f++instance Zero RenderingAttachmentInfo where+  zero = RenderingAttachmentInfo+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkPhysicalDeviceDynamicRenderingFeatures - Structure indicating support+-- for dynamic render pass instances+--+-- = Members+--+-- The members of the 'PhysicalDeviceDynamicRenderingFeatures' structure+-- describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceDynamicRenderingFeatures' 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. 'PhysicalDeviceDynamicRenderingFeatures' /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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceDynamicRenderingFeatures = PhysicalDeviceDynamicRenderingFeatures+  { -- | #extension-features-dynamicRendering# @dynamicRendering@ specifies that+    -- the implementation supports dynamic render pass instances using the+    -- 'cmdBeginRendering' command.+    dynamicRendering :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceDynamicRenderingFeatures)+#endif+deriving instance Show PhysicalDeviceDynamicRenderingFeatures++instance ToCStruct PhysicalDeviceDynamicRenderingFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceDynamicRenderingFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicRendering))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceDynamicRenderingFeatures where+  peekCStruct p = do+    dynamicRendering <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceDynamicRenderingFeatures+             (bool32ToBool dynamicRendering)++instance Storable PhysicalDeviceDynamicRenderingFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceDynamicRenderingFeatures where+  zero = PhysicalDeviceDynamicRenderingFeatures+           zero+++-- | VkCommandBufferInheritanceRenderingInfo - Structure specifying command+-- buffer inheritance info for dynamic render pass instances+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes a+-- 'CommandBufferInheritanceRenderingInfo' structure, then that structure+-- controls parameters of dynamic render pass instances that the+-- 'Vulkan.Core10.Handles.CommandBuffer' /can/ be executed within. If+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+-- is not specified in+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,+-- parameters of this structure are ignored.+--+-- If @colorAttachmentCount@ is @0@ and the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>+-- feature is enabled, @rasterizationSamples@ is ignored.+--+-- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of+-- @pColorAttachmentFormats@ is+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the+-- corresponding attachment is unused within the render pass.+--+-- == Valid Usage+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004#+--     If @colorAttachmentCount@ is not @0@, @rasterizationSamples@ /must/+--     be a valid+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>+--     feature is not enabled, @rasterizationSamples@ /must/ be a valid+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06006#+--     If any element of @pColorAttachmentFormats@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that include+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007#+--     If @depthAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that include+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492#+--     When rendering to a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color attachment>,+--     if any element of @pColorAttachmentFormats@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that include+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199#+--     If @stencilAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format+--     with+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+--     that include+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200#+--     If @depthAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and+--     @stencilAttachmentFormat@ is not+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',+--     @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+--     feature is not enabled, @viewMask@ /must/ be @0@+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009# The+--     index of the most significant bit in @viewMask@ /must/ be less than+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO'+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameter#+--     @flags@ /must/ be a valid combination of+--     'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits' values+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameter#+--     If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@+--     /must/ be a valid pointer to an array of @colorAttachmentCount@+--     valid 'Vulkan.Core10.Enums.Format.Format' values+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameter#+--     @depthAttachmentFormat@ /must/ be a valid+--     'Vulkan.Core10.Enums.Format.Format' value+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameter#+--     @stencilAttachmentFormat@ /must/ be a valid+--     'Vulkan.Core10.Enums.Format.Format' value+--+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameter#+--     If @rasterizationSamples@ is not @0@, @rasterizationSamples@ /must/+--     be a valid+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlags',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data CommandBufferInheritanceRenderingInfo = CommandBufferInheritanceRenderingInfo+  { -- | @flags@ is a bitmask of+    -- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits' used by the+    -- render pass instance.+    flags :: RenderingFlags+  , -- | @viewMask@ is the view mask used for rendering.+    viewMask :: Word32+  , -- | @pColorAttachmentFormats@ is a pointer to an array of+    -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color+    -- attachments.+    colorAttachmentFormats :: Vector Format+  , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+    -- defining the format of the depth attachment.+    depthAttachmentFormat :: Format+  , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+    -- defining the format of the stencil attachment.+    stencilAttachmentFormat :: Format+  , -- | @rasterizationSamples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying+    -- the number of samples used in rasterization.+    rasterizationSamples :: SampleCountFlagBits+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CommandBufferInheritanceRenderingInfo)+#endif+deriving instance Show CommandBufferInheritanceRenderingInfo++instance ToCStruct CommandBufferInheritanceRenderingInfo where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CommandBufferInheritanceRenderingInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlags)) (flags)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewMask)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))+    pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')+    lift $ poke ((p `plusPtr` 40 :: Ptr Format)) (depthAttachmentFormat)+    lift $ poke ((p `plusPtr` 44 :: Ptr Format)) (stencilAttachmentFormat)+    lift $ poke ((p `plusPtr` 48 :: Ptr SampleCountFlagBits)) (rasterizationSamples)+    lift $ f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Format)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Format)) (zero)+    f++instance FromCStruct CommandBufferInheritanceRenderingInfo where+  peekCStruct p = do+    flags <- peek @RenderingFlags ((p `plusPtr` 16 :: Ptr RenderingFlags))+    viewMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 32 :: Ptr (Ptr Format)))+    pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))+    depthAttachmentFormat <- peek @Format ((p `plusPtr` 40 :: Ptr Format))+    stencilAttachmentFormat <- peek @Format ((p `plusPtr` 44 :: Ptr Format))+    rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 48 :: Ptr SampleCountFlagBits))+    pure $ CommandBufferInheritanceRenderingInfo+             flags viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat rasterizationSamples++instance Zero CommandBufferInheritanceRenderingInfo where+  zero = CommandBufferInheritanceRenderingInfo+           zero+           zero+           mempty+           zero+           zero+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs-boot view
@@ -0,0 +1,51 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_dynamic_rendering"+module Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering  ( CommandBufferInheritanceRenderingInfo+                                                             , PhysicalDeviceDynamicRenderingFeatures+                                                             , PipelineRenderingCreateInfo+                                                             , RenderingAttachmentInfo+                                                             , RenderingInfo+                                                             ) 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 (PokeChain)+data CommandBufferInheritanceRenderingInfo++instance ToCStruct CommandBufferInheritanceRenderingInfo+instance Show CommandBufferInheritanceRenderingInfo++instance FromCStruct CommandBufferInheritanceRenderingInfo+++data PhysicalDeviceDynamicRenderingFeatures++instance ToCStruct PhysicalDeviceDynamicRenderingFeatures+instance Show PhysicalDeviceDynamicRenderingFeatures++instance FromCStruct PhysicalDeviceDynamicRenderingFeatures+++data PipelineRenderingCreateInfo++instance ToCStruct PipelineRenderingCreateInfo+instance Show PipelineRenderingCreateInfo++instance FromCStruct PipelineRenderingCreateInfo+++data RenderingAttachmentInfo++instance ToCStruct RenderingAttachmentInfo+instance Show RenderingAttachmentInfo+++type role RenderingInfo nominal+data RenderingInfo (es :: [Type])++instance (Extendss RenderingInfo es, PokeChain es) => ToCStruct (RenderingInfo es)+instance Show (Chain es) => Show (RenderingInfo es)+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs view
@@ -0,0 +1,105 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_format_feature_flags2"+module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2  ( FormatProperties3(..)+                                                                 , StructureType(..)+                                                                 , FormatFeatureFlagBits2(..)+                                                                 , FormatFeatureFlags2+                                                                 ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_3))+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlagBits2(..))+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkFormatProperties3 - Structure specifying image format properties+--+-- = Description+--+-- The bits reported in @linearTilingFeatures@, @optimalTilingFeatures@ and+-- @bufferFeatures@ /must/ include the bits reported in the corresponding+-- fields of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'::@formatProperties@.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data FormatProperties3 = FormatProperties3+  { -- | @linearTilingFeatures@ is a bitmask of+    -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2'+    -- specifying features supported by images created with a @tiling@+    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'.+    linearTilingFeatures :: FormatFeatureFlags2+  , -- | @optimalTilingFeatures@ is a bitmask of+    -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2'+    -- specifying features supported by images created with a @tiling@+    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.+    optimalTilingFeatures :: FormatFeatureFlags2+  , -- | @bufferFeatures@ is a bitmask of+    -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2'+    -- specifying features supported by buffers.+    bufferFeatures :: FormatFeatureFlags2+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (FormatProperties3)+#endif+deriving instance Show FormatProperties3++instance ToCStruct FormatProperties3 where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p FormatProperties3{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) (linearTilingFeatures)+    poke ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2)) (optimalTilingFeatures)+    poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) (bufferFeatures)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct FormatProperties3 where+  peekCStruct p = do+    linearTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2))+    optimalTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2))+    bufferFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2))+    pure $ FormatProperties3+             linearTilingFeatures optimalTilingFeatures bufferFeatures++instance Storable FormatProperties3 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero FormatProperties3 where+  zero = FormatProperties3+           zero+           zero+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_format_feature_flags2"+module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2  (FormatProperties3) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data FormatProperties3++instance ToCStruct FormatProperties3+instance Show FormatProperties3++instance FromCStruct FormatProperties3+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs view
@@ -0,0 +1,566 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_maintenance4"+module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4  ( getDeviceBufferMemoryRequirements+                                                        , getDeviceImageMemoryRequirements+                                                        , getDeviceImageSparseMemoryRequirements+                                                        , DeviceBufferMemoryRequirements(..)+                                                        , DeviceImageMemoryRequirements(..)+                                                        , PhysicalDeviceMaintenance4Features(..)+                                                        , PhysicalDeviceMaintenance4Properties(..)+                                                        , StructureType(..)+                                                        ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import 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.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (withSomeCStruct)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Buffer (BufferCreateInfo)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceBufferMemoryRequirements))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageMemoryRequirements))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageSparseMemoryRequirements))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)+import Vulkan.Core10.Image (ImageCreateInfo)+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.CStruct.Extends (SomeStruct(..))+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (SparseImageMemoryRequirements2)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDeviceBufferMemoryRequirements+  :: FunPtr (Ptr Device_T -> Ptr DeviceBufferMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceBufferMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()++-- | vkGetDeviceBufferMemoryRequirements - Returns the memory requirements+-- for specified Vulkan object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceBufferMemoryRequirements',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'+getDeviceBufferMemoryRequirements :: forall a io+                                   . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)+                                  => -- | @device@ is the logical device intended to own the buffer.+                                     --+                                     -- #VUID-vkGetDeviceBufferMemoryRequirements-device-parameter# @device@+                                     -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+                                     Device+                                  -> -- | @pInfo@ is a pointer to a 'DeviceBufferMemoryRequirements' structure+                                     -- containing parameters required for the memory requirements query.+                                     --+                                     -- #VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameter# @pInfo@+                                     -- /must/ be a valid pointer to a valid 'DeviceBufferMemoryRequirements'+                                     -- structure+                                     ("info" ::: DeviceBufferMemoryRequirements)+                                  -> io (MemoryRequirements2 a)+getDeviceBufferMemoryRequirements device info = liftIO . evalContT $ do+  let vkGetDeviceBufferMemoryRequirementsPtr = pVkGetDeviceBufferMemoryRequirements (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDeviceBufferMemoryRequirementsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceBufferMemoryRequirements is null" Nothing Nothing+  let vkGetDeviceBufferMemoryRequirements' = mkVkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirementsPtr+  pInfo <- ContT $ withCStruct (info)+  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))+  lift $ traceAroundEvent "vkGetDeviceBufferMemoryRequirements" (vkGetDeviceBufferMemoryRequirements' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements+  pure $ (pMemoryRequirements)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDeviceImageMemoryRequirements+  :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()++-- | vkGetDeviceImageMemoryRequirements - Returns the memory requirements for+-- specified Vulkan object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirements',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'+getDeviceImageMemoryRequirements :: forall a io+                                  . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)+                                 => -- | @device@ is the logical device intended to own the image.+                                    --+                                    -- #VUID-vkGetDeviceImageMemoryRequirements-device-parameter# @device@+                                    -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+                                    Device+                                 -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirements' structure+                                    -- containing parameters required for the memory requirements query.+                                    --+                                    -- #VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameter# @pInfo@ /must/+                                    -- be a valid pointer to a valid 'DeviceImageMemoryRequirements' structure+                                    ("info" ::: DeviceImageMemoryRequirements)+                                 -> io (MemoryRequirements2 a)+getDeviceImageMemoryRequirements device info = liftIO . evalContT $ do+  let vkGetDeviceImageMemoryRequirementsPtr = pVkGetDeviceImageMemoryRequirements (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDeviceImageMemoryRequirementsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageMemoryRequirements is null" Nothing Nothing+  let vkGetDeviceImageMemoryRequirements' = mkVkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirementsPtr+  pInfo <- ContT $ withCStruct (info)+  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))+  lift $ traceAroundEvent "vkGetDeviceImageMemoryRequirements" (vkGetDeviceImageMemoryRequirements' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements+  pure $ (pMemoryRequirements)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDeviceImageSparseMemoryRequirements+  :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()++-- | vkGetDeviceImageSparseMemoryRequirements - Query the memory requirements+-- for a sparse image+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameter#+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameter#+--     @pInfo@ /must/ be a valid pointer to a valid+--     'DeviceImageMemoryRequirements' structure+--+-- -   #VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter#+--     @pSparseMemoryRequirementCount@ /must/ be a valid pointer to a+--     @uint32_t@ value+--+-- -   #VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter#+--     If the value referenced by @pSparseMemoryRequirementCount@ is not+--     @0@, and @pSparseMemoryRequirements@ is not @NULL@,+--     @pSparseMemoryRequirements@ /must/ be a valid pointer to an array of+--     @pSparseMemoryRequirementCount@+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'+--     structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirements',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'+getDeviceImageSparseMemoryRequirements :: forall io+                                        . (MonadIO io)+                                       => -- | @device@ is the logical device intended to own the image.+                                          Device+                                       -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirements' structure+                                          -- containing parameters required for the memory requirements query.+                                          ("info" ::: DeviceImageMemoryRequirements)+                                       -> io (("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2))+getDeviceImageSparseMemoryRequirements device info = liftIO . evalContT $ do+  let vkGetDeviceImageSparseMemoryRequirementsPtr = pVkGetDeviceImageSparseMemoryRequirements (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDeviceImageSparseMemoryRequirementsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageSparseMemoryRequirements is null" Nothing Nothing+  let vkGetDeviceImageSparseMemoryRequirements' = mkVkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirementsPtr+  let device' = deviceHandle (device)+  pInfo <- ContT $ withCStruct (info)+  pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free+  lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirements" (vkGetDeviceImageSparseMemoryRequirements' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr))+  pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount+  pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements2 ((fromIntegral (pSparseMemoryRequirementCount)) * 64)) free+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 64) :: Ptr SparseImageMemoryRequirements2) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]+  lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirements" (vkGetDeviceImageSparseMemoryRequirements' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements)))+  pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount+  pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements2 (((pPSparseMemoryRequirements) `advancePtrBytes` (64 * (i)) :: Ptr SparseImageMemoryRequirements2)))+  pure $ (pSparseMemoryRequirements')+++-- | VkDeviceBufferMemoryRequirements - (None)+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Buffer.BufferCreateInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceBufferMemoryRequirements',+-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR'+data DeviceBufferMemoryRequirements = DeviceBufferMemoryRequirements+  { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Buffer.BufferCreateInfo'+    -- structure containing parameters affecting creation of the buffer to+    -- query.+    --+    -- #VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameter#+    -- @pCreateInfo@ /must/ be a valid pointer to a valid+    -- 'Vulkan.Core10.Buffer.BufferCreateInfo' structure+    createInfo :: SomeStruct BufferCreateInfo }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceBufferMemoryRequirements)+#endif+deriving instance Show DeviceBufferMemoryRequirements++instance ToCStruct DeviceBufferMemoryRequirements where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceBufferMemoryRequirements{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo (createInfo) (cont . castPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''+    lift $ f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo ((SomeStruct zero)) (cont . castPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''+    lift $ f++instance FromCStruct DeviceBufferMemoryRequirements where+  peekCStruct p = do+    pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _))))+    pure $ DeviceBufferMemoryRequirements+             pCreateInfo++instance Zero DeviceBufferMemoryRequirements where+  zero = DeviceBufferMemoryRequirements+           (SomeStruct zero)+++-- | VkDeviceImageMemoryRequirements - (None)+--+-- == Valid Usage+--+-- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416# The+--     @pCreateInfo@::@pNext@ chain /must/ not contain a+--     'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'+--     structure+--+-- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If+--     @pCreateInfo@::@flags@ has+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'+--     set then @planeAspect@ /must/ not be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'+--+-- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06418# If+--     @pCreateInfo@::@flags@ has+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+--     set then @planeAspect@ /must/ not be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'+--+-- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419# If+--     @pCreateInfo@::@flags@ has+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'+--     set and if the @pCreateInfo@::@tiling@ is+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then+--     @planeAspect@ /must/ be a single valid /format plane/ for the image+--     (that is, for a two-plane image @planeAspect@ /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     and for a three-plane image @planeAspect@ /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT')+--+-- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420# If+--     @pCreateInfo@::@flags@ has+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+--     set and the @pCreateInfo@::@tiling@ is+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',+--     then @planeAspect@ /must/ be a single valid /memory plane/ for the+--     image (that is, @aspectMask@ /must/ specify a plane index that is+--     less than the+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@+--     associated with the image’s @format@ and+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@)+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkDeviceImageMemoryRequirements-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS'+--+-- -   #VUID-VkDeviceImageMemoryRequirements-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter#+--     @pCreateInfo@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.Image.ImageCreateInfo' structure+--+-- -   #VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter#+--     @planeAspect@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',+-- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceImageMemoryRequirements',+-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',+-- 'getDeviceImageSparseMemoryRequirements',+-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR'+data DeviceImageMemoryRequirements = DeviceImageMemoryRequirements+  { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Image.ImageCreateInfo'+    -- structure containing parameters affecting creation of the image to+    -- query.+    createInfo :: SomeStruct ImageCreateInfo+  , -- | @planeAspect@ is a+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+    -- specifying the aspect corresponding to the image plane to query. This+    -- parameter is ignored unless @pCreateInfo@::@flags@ has+    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' or+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+    -- set.+    planeAspect :: ImageAspectFlagBits+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceImageMemoryRequirements)+#endif+deriving instance Show DeviceImageMemoryRequirements++instance ToCStruct DeviceImageMemoryRequirements where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceImageMemoryRequirements{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo (createInfo) (cont . castPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (planeAspect)+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo ((SomeStruct zero)) (cont . castPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (zero)+    lift $ f++instance FromCStruct DeviceImageMemoryRequirements where+  peekCStruct p = do+    pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _))))+    planeAspect <- peek @ImageAspectFlagBits ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits))+    pure $ DeviceImageMemoryRequirements+             pCreateInfo planeAspect++instance Zero DeviceImageMemoryRequirements where+  zero = DeviceImageMemoryRequirements+           (SomeStruct zero)+           zero+++-- | VkPhysicalDeviceMaintenance4Features - Structure describing whether the+-- implementation supports maintenance4 functionality+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceMaintenance4Features' 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. 'PhysicalDeviceMaintenance4Features' /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_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMaintenance4Features = PhysicalDeviceMaintenance4Features+  { -- | #extension-features-maintenance4# @maintenance4@ indicates that the+    -- implementation supports the following:+    --+    -- -   The application /may/ destroy a+    --     'Vulkan.Core10.Handles.PipelineLayout' object immediately after+    --     using it to create another object.+    --+    -- -   @LocalSizeId@ /can/ be used as an alternative to @LocalSize@ to+    --     specify the local workgroup size with specialization constants.+    --+    -- -   Images created with identical creation parameters will always have+    --     the same alignment requirements.+    --+    -- -   The size memory requirement of a buffer or image is never greater+    --     than that of another buffer or image created with a greater or equal+    --     size.+    --+    -- -   Push constants do not have to be initialized before they are+    --     dynamically accessed.+    --+    -- -   The interface matching rules allow a larger output vector to match+    --     with a smaller input vector, with additional values being discarded.+    maintenance4 :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMaintenance4Features)+#endif+deriving instance Show PhysicalDeviceMaintenance4Features++instance ToCStruct PhysicalDeviceMaintenance4Features where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceMaintenance4Features{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance4))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceMaintenance4Features where+  peekCStruct p = do+    maintenance4 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceMaintenance4Features+             (bool32ToBool maintenance4)++instance Storable PhysicalDeviceMaintenance4Features where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMaintenance4Features where+  zero = PhysicalDeviceMaintenance4Features+           zero+++-- | VkPhysicalDeviceMaintenance4Properties - Structure describing various+-- implementation-defined properties introduced with VK_KHR_maintenance4+--+-- = Description+--+-- If the 'PhysicalDeviceMaintenance4Properties' 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_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMaintenance4Properties = PhysicalDeviceMaintenance4Properties+  { -- | #extension-limits-maxBufferSize# @maxBufferSize@ is the maximum size+    -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.+    maxBufferSize :: DeviceSize }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMaintenance4Properties)+#endif+deriving instance Show PhysicalDeviceMaintenance4Properties++instance ToCStruct PhysicalDeviceMaintenance4Properties where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceMaintenance4Properties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (maxBufferSize)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct PhysicalDeviceMaintenance4Properties where+  peekCStruct p = do+    maxBufferSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    pure $ PhysicalDeviceMaintenance4Properties+             maxBufferSize++instance Storable PhysicalDeviceMaintenance4Properties where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMaintenance4Properties where+  zero = PhysicalDeviceMaintenance4Properties+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs-boot view
@@ -0,0 +1,43 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_maintenance4"+module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4  ( DeviceBufferMemoryRequirements+                                                        , DeviceImageMemoryRequirements+                                                        , PhysicalDeviceMaintenance4Features+                                                        , PhysicalDeviceMaintenance4Properties+                                                        ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceBufferMemoryRequirements++instance ToCStruct DeviceBufferMemoryRequirements+instance Show DeviceBufferMemoryRequirements++instance FromCStruct DeviceBufferMemoryRequirements+++data DeviceImageMemoryRequirements++instance ToCStruct DeviceImageMemoryRequirements+instance Show DeviceImageMemoryRequirements++instance FromCStruct DeviceImageMemoryRequirements+++data PhysicalDeviceMaintenance4Features++instance ToCStruct PhysicalDeviceMaintenance4Features+instance Show PhysicalDeviceMaintenance4Features++instance FromCStruct PhysicalDeviceMaintenance4Features+++data PhysicalDeviceMaintenance4Properties++instance ToCStruct PhysicalDeviceMaintenance4Properties+instance Show PhysicalDeviceMaintenance4Properties++instance FromCStruct PhysicalDeviceMaintenance4Properties+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs view
@@ -0,0 +1,478 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_integer_dot_product"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product  ( PhysicalDeviceShaderIntegerDotProductFeatures(..)+                                                                      , PhysicalDeviceShaderIntegerDotProductProperties(..)+                                                                      , StructureType(..)+                                                                      ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceShaderIntegerDotProductFeatures - Structure describing+-- integer dot product features that can be supported by an implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceShaderIntegerDotProductFeatures'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderIntegerDotProductFeatures' 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. 'PhysicalDeviceShaderIntegerDotProductFeatures' /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_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderIntegerDotProductFeatures = PhysicalDeviceShaderIntegerDotProductFeatures+  { -- | #extension-features-shaderIntegerDotProduct# @shaderIntegerDotProduct@+    -- specifies whether shader modules /can/ declare the+    -- @DotProductInputAllKHR@, @DotProductInput4x8BitKHR@,+    -- @DotProductInput4x8BitPackedKHR@ and @DotProductKHR@ capabilities.+    shaderIntegerDotProduct :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderIntegerDotProductFeatures)+#endif+deriving instance Show PhysicalDeviceShaderIntegerDotProductFeatures++instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceShaderIntegerDotProductFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderIntegerDotProduct))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeatures where+  peekCStruct p = do+    shaderIntegerDotProduct <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceShaderIntegerDotProductFeatures+             (bool32ToBool shaderIntegerDotProduct)++instance Storable PhysicalDeviceShaderIntegerDotProductFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderIntegerDotProductFeatures where+  zero = PhysicalDeviceShaderIntegerDotProductFeatures+           zero+++-- | VkPhysicalDeviceShaderIntegerDotProductProperties - Structure containing+-- information about integer dot product support for a physical device+--+-- = Description+--+-- If the 'PhysicalDeviceShaderIntegerDotProductProperties' 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.+--+-- These are properties of the integer dot product acceleration information+-- of a physical device.+--+-- Note+--+-- A dot product operation is deemed accelerated if its implementation+-- provides a performance advantage over application-provided code composed+-- from elementary instructions and\/or other dot product instructions,+-- either because the implementation uses optimized machine code sequences+-- whose generation from application-provided code cannot be guaranteed or+-- because it uses hardware features that cannot otherwise be targeted from+-- application-provided code.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderIntegerDotProductProperties = PhysicalDeviceShaderIntegerDotProductProperties+  { -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct8BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct8BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct8BitSignedAccelerated :: Bool+  , -- | @integerDotProduct8BitMixedSignednessAccelerated@ is a boolean that will+    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit mixed+    -- signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct8BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct4x8BitPackedUnsignedAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit+    -- unsigned dot product operations from operands packed into 32-bit+    -- integers using the @OpUDotKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct4x8BitPackedUnsignedAccelerated :: Bool+  , -- | @integerDotProduct4x8BitPackedSignedAccelerated@ is a boolean that will+    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed+    -- dot product operations from operands packed into 32-bit integers using+    -- the @OpSDotKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct4x8BitPackedSignedAccelerated :: Bool+  , -- | @integerDotProduct4x8BitPackedMixedSignednessAccelerated@ is a boolean+    -- that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for+    -- 8-bit mixed signedness dot product operations from operands packed into+    -- 32-bit integers using the @OpSUDotKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct4x8BitPackedMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct16BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct16BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct16BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct16BitSignedAccelerated :: Bool+  , -- | @integerDotProduct16BitMixedSignednessAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit+    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct16BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct32BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct32BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct32BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct32BitSignedAccelerated :: Bool+  , -- | @integerDotProduct32BitMixedSignednessAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit+    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct32BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProduct64BitUnsignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit unsigned+    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct64BitUnsignedAccelerated :: Bool+  , -- | @integerDotProduct64BitSignedAccelerated@ is a boolean that will be+    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit signed+    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct64BitSignedAccelerated :: Bool+  , -- | @integerDotProduct64BitMixedSignednessAccelerated@ is a boolean that+    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit+    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V+    -- instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProduct64BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating8BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating8BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating8BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit unsigned accumulating saturating dot product+    -- operations from operands packed into 32-bit integers using the+    -- @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit signed accumulating saturating dot product operations+    -- from operands packed into 32-bit integers using the @OpSDotAccSatKHR@+    -- SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 8-bit mixed signedness accumulating saturating dot product+    -- operations from operands packed into 32-bit integers using the+    -- @OpSUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating16BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 16-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating16BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 16-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating16BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 16-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating32BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 32-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating32BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 32-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating32BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 32-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating64BitUnsignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 64-bit unsigned accumulating saturating dot product+    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating64BitSignedAccelerated@ is a+    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 64-bit signed accumulating saturating dot product operations+    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating64BitSignedAccelerated :: Bool+  , -- | @integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated@+    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the+    -- support for 64-bit mixed signedness accumulating saturating dot product+    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is+    -- accelerated+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderIntegerDotProductProperties)+#endif+deriving instance Show PhysicalDeviceShaderIntegerDotProductProperties++instance ToCStruct PhysicalDeviceShaderIntegerDotProductProperties where+  withCStruct x f = allocaBytes 136 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceShaderIntegerDotProductProperties{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitUnsignedAccelerated))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitSignedAccelerated))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedUnsignedAccelerated))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedSignedAccelerated))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedMixedSignednessAccelerated))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitUnsignedAccelerated))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitSignedAccelerated))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitUnsignedAccelerated))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitSignedAccelerated))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitUnsignedAccelerated))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitSignedAccelerated))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitSignedAccelerated))+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitSignedAccelerated))+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitSignedAccelerated))+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitSignedAccelerated))+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))+    f+  cStructSize = 136+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceShaderIntegerDotProductProperties where+  peekCStruct p = do+    integerDotProduct8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    integerDotProduct8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    integerDotProduct8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    integerDotProduct4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    integerDotProduct4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    integerDotProduct4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+    integerDotProduct16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+    integerDotProduct16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+    integerDotProduct16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+    integerDotProduct32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+    integerDotProduct32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+    integerDotProduct32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+    integerDotProduct64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+    integerDotProduct64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+    integerDotProduct64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))+    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))+    pure $ PhysicalDeviceShaderIntegerDotProductProperties+             (bool32ToBool integerDotProduct8BitUnsignedAccelerated) (bool32ToBool integerDotProduct8BitSignedAccelerated) (bool32ToBool integerDotProduct8BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProduct16BitUnsignedAccelerated) (bool32ToBool integerDotProduct16BitSignedAccelerated) (bool32ToBool integerDotProduct16BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct32BitUnsignedAccelerated) (bool32ToBool integerDotProduct32BitSignedAccelerated) (bool32ToBool integerDotProduct32BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct64BitUnsignedAccelerated) (bool32ToBool integerDotProduct64BitSignedAccelerated) (bool32ToBool integerDotProduct64BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated)++instance Storable PhysicalDeviceShaderIntegerDotProductProperties where+  sizeOf ~_ = 136+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderIntegerDotProductProperties where+  zero = PhysicalDeviceShaderIntegerDotProductProperties+           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+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs-boot view
@@ -0,0 +1,25 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_integer_dot_product"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product  ( PhysicalDeviceShaderIntegerDotProductFeatures+                                                                      , PhysicalDeviceShaderIntegerDotProductProperties+                                                                      ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderIntegerDotProductFeatures++instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeatures+instance Show PhysicalDeviceShaderIntegerDotProductFeatures++instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeatures+++data PhysicalDeviceShaderIntegerDotProductProperties++instance ToCStruct PhysicalDeviceShaderIntegerDotProductProperties+instance Show PhysicalDeviceShaderIntegerDotProductProperties++instance FromCStruct PhysicalDeviceShaderIntegerDotProductProperties+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs view
@@ -0,0 +1,98 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_terminate_invocation"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation  ( PhysicalDeviceShaderTerminateInvocationFeatures(..)+                                                                       , StructureType(..)+                                                                       ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceShaderTerminateInvocationFeatures - Structure describing+-- support for the SPIR-V @SPV_KHR_terminate_invocation@ extension+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderTerminateInvocationFeatures' 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. 'PhysicalDeviceShaderTerminateInvocationFeatures' /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_KHR_shader_terminate_invocation VK_KHR_shader_terminate_invocation>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderTerminateInvocationFeatures = PhysicalDeviceShaderTerminateInvocationFeatures+  { -- | #extension-features-shaderTerminateInvocation#+    -- @shaderTerminateInvocation@ specifies whether the implementation+    -- supports SPIR-V modules that use the @SPV_KHR_terminate_invocation@+    -- extension.+    shaderTerminateInvocation :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderTerminateInvocationFeatures)+#endif+deriving instance Show PhysicalDeviceShaderTerminateInvocationFeatures++instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceShaderTerminateInvocationFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeatures where+  peekCStruct p = do+    shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceShaderTerminateInvocationFeatures+             (bool32ToBool shaderTerminateInvocation)++instance Storable PhysicalDeviceShaderTerminateInvocationFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderTerminateInvocationFeatures where+  zero = PhysicalDeviceShaderTerminateInvocationFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_terminate_invocation"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation  (PhysicalDeviceShaderTerminateInvocationFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderTerminateInvocationFeatures++instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeatures+instance Show PhysicalDeviceShaderTerminateInvocationFeatures++instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -0,0 +1,4855 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_synchronization2"+module Vulkan.Core13.Promoted_From_VK_KHR_synchronization2  ( cmdSetEvent2+                                                            , cmdResetEvent2+                                                            , cmdWaitEvents2+                                                            , cmdWaitEvents2Safe+                                                            , cmdPipelineBarrier2+                                                            , queueSubmit2+                                                            , cmdWriteTimestamp2+                                                            , MemoryBarrier2(..)+                                                            , ImageMemoryBarrier2(..)+                                                            , BufferMemoryBarrier2(..)+                                                            , DependencyInfo(..)+                                                            , SemaphoreSubmitInfo(..)+                                                            , CommandBufferSubmitInfo(..)+                                                            , SubmitInfo2(..)+                                                            , PhysicalDeviceSynchronization2Features(..)+                                                            , ImageLayout(..)+                                                            , StructureType(..)+                                                            , AccessFlagBits(..)+                                                            , AccessFlags+                                                            , PipelineStageFlagBits(..)+                                                            , PipelineStageFlags+                                                            , AccessFlagBits2(..)+                                                            , AccessFlags2+                                                            , PipelineStageFlagBits2(..)+                                                            , PipelineStageFlags2+                                                            , SubmitFlagBits(..)+                                                            , SubmitFlags+                                                            , EventCreateFlagBits(..)+                                                            , EventCreateFlags+                                                            ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT)+import Foreign.Marshal.Alloc (allocaBytes)+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 Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Type.Equality ((:~:)(Refl))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (pokeSomeCStruct)+import Vulkan.NamedType ((:::))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Buffer)+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.Enums.DependencyFlagBits (DependencyFlags)+import Vulkan.Dynamic (DeviceCmds(pVkCmdPipelineBarrier2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdResetEvent2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetEvent2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdWaitEvents2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteTimestamp2))+import Vulkan.Dynamic (DeviceCmds(pVkQueueSubmit2))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Event)+import Vulkan.Core10.Handles (Event(..))+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.Handles (Fence)+import Vulkan.Core10.Handles (Fence(..))+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.ImageView (ImageSubresourceRange)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.Handles (QueryPool)+import Vulkan.Core10.Handles (QueryPool(..))+import Vulkan.Core10.Handles (Queue)+import Vulkan.Core10.Handles (Queue(..))+import Vulkan.Core10.Handles (Queue(Queue))+import Vulkan.Core10.Handles (Queue_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)+import Vulkan.Core10.Handles (Semaphore)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)+import Vulkan.Exception (VulkanException(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoNV)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(..))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(..))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlagBits(..))+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlags)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(..))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits(..))+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetEvent2+  :: FunPtr (Ptr CommandBuffer_T -> Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Event -> Ptr DependencyInfo -> IO ()++-- | vkCmdSetEvent2 - Set an event object to signaled state+--+-- = Description+--+-- When 'cmdSetEvent2' is submitted to a queue, it defines the first half+-- of memory dependencies defined by @pDependencyInfo@, as well as an event+-- signal operation which sets the event to the signaled state. A memory+-- dependency is defined between the event signal operation and commands+-- that occur earlier in submission order.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- are defined by the union of all the memory dependencies defined by+-- @pDependencyInfo@, and are applied to all operations that occur earlier+-- in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers Queue family ownership transfers>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>+-- defined by @pDependencyInfo@ are also included in the first scopes.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the event signal operation, and any+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>+-- defined by @pDependencyInfo@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- includes only+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+--+-- Future 'cmdWaitEvents2' commands rely on all values of each element in+-- @pDependencyInfo@ matching exactly with those used to signal the+-- corresponding event. 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents'+-- /must/ not be used to wait on the result of a signal operation defined+-- by 'cmdSetEvent2'.+--+-- Note+--+-- The extra information provided by 'cmdSetEvent2' compared to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' allows implementations+-- to more efficiently schedule the operations required to satisfy the+-- requested dependencies. With+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent', the full dependency+-- information is not known until+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' is recorded, forcing+-- implementations to insert the required operations at that point and not+-- before.+--+-- If @event@ is already in the signaled state when 'cmdSetEvent2' is+-- executed on the device, then 'cmdSetEvent2' has no effect, no event+-- signal operation occurs, and no dependency is generated.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetEvent2-synchronization2-03824# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetEvent2-dependencyFlags-03825# The @dependencyFlags@+--     member of @pDependencyInfo@ /must/ be @0@+--+-- -   #VUID-vkCmdSetEvent2-commandBuffer-03826# The current device mask of+--     @commandBuffer@ /must/ include exactly one physical device+--+-- -   #VUID-vkCmdSetEvent2-srcStageMask-03827# The @srcStageMask@ member+--     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+--     @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ only+--     include pipeline stages valid for the queue family that was used to+--     create the command pool that @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdSetEvent2-dstStageMask-03828# The @dstStageMask@ member+--     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+--     @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ only+--     include pipeline stages valid for the queue family that was used to+--     create the command pool that @commandBuffer@ was allocated from+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetEvent2-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetEvent2-event-parameter# @event@ /must/ be a valid+--     'Vulkan.Core10.Handles.Event' handle+--+-- -   #VUID-vkCmdSetEvent2-pDependencyInfo-parameter# @pDependencyInfo@+--     /must/ be a valid pointer to a valid 'DependencyInfo' structure+--+-- -   #VUID-vkCmdSetEvent2-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-vkCmdSetEvent2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdSetEvent2-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdSetEvent2-commonparent# Both of @commandBuffer@, and+--     @event@ /must/ have been created, allocated, or retrieved from the+--     same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfo',+-- 'Vulkan.Core10.Handles.Event'+cmdSetEvent2 :: forall io+              . (MonadIO io)+             => -- | @commandBuffer@ is the command buffer into which the command is+                -- recorded.+                CommandBuffer+             -> -- | @event@ is the event that will be signaled.+                Event+             -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfo' structure defining+                -- the first scopes of this operation.+                DependencyInfo+             -> io ()+cmdSetEvent2 commandBuffer event dependencyInfo = liftIO . evalContT $ do+  let vkCmdSetEvent2Ptr = pVkCmdSetEvent2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetEvent2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent2 is null" Nothing Nothing+  let vkCmdSetEvent2' = mkVkCmdSetEvent2 vkCmdSetEvent2Ptr+  pDependencyInfo <- ContT $ withCStruct (dependencyInfo)+  lift $ traceAroundEvent "vkCmdSetEvent2" (vkCmdSetEvent2' (commandBufferHandle (commandBuffer)) (event) pDependencyInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdResetEvent2+  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags2 -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags2 -> IO ()++-- | vkCmdResetEvent2 - Reset an event object to non-signaled state+--+-- = Description+--+-- When 'cmdResetEvent2' is submitted to a queue, it defines an execution+-- dependency on commands that were submitted before it, and defines an+-- event unsignal operation which resets the event to the unsignaled state.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- The synchronization scope is limited to operations by @stageMask@ or+-- stages that are+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- than @stageMask@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the event unsignal operation.+--+-- If @event@ is already in the unsignaled state when 'cmdResetEvent2' is+-- executed on the device, then this command has no effect, no event+-- unsignal operation occurs, and no execution dependency is generated.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-vkCmdResetEvent2-stageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-vkCmdResetEvent2-synchronization2-03829# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdResetEvent2-stageMask-03830# @stageMask@ /must/ not+--     include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-vkCmdResetEvent2-event-03831# There /must/ be an execution+--     dependency between 'cmdResetEvent2' and the execution of any+--     'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' that includes+--     @event@ in its @pEvents@ parameter+--+-- -   #VUID-vkCmdResetEvent2-event-03832# There /must/ be an execution+--     dependency between 'cmdResetEvent2' and the execution of any+--     'cmdWaitEvents2' that includes @event@ in its @pEvents@ parameter+--+-- -   #VUID-vkCmdResetEvent2-commandBuffer-03833# @commandBuffer@’s+--     current device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdResetEvent2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdResetEvent2-event-parameter# @event@ /must/ be a valid+--     'Vulkan.Core10.Handles.Event' handle+--+-- -   #VUID-vkCmdResetEvent2-stageMask-parameter# @stageMask@ /must/ be a+--     valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-vkCmdResetEvent2-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-vkCmdResetEvent2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdResetEvent2-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdResetEvent2-commonparent# Both of @commandBuffer@, and+--     @event@ /must/ have been created, allocated, or retrieved from the+--     same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'+cmdResetEvent2 :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command is+                  -- recorded.+                  CommandBuffer+               -> -- | @event@ is the event that will be unsignaled.+                  Event+               -> -- | @stageMask@ is a+                  -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+                  -- pipeline stages used to determine the first+                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+                  ("stageMask" ::: PipelineStageFlags2)+               -> io ()+cmdResetEvent2 commandBuffer event stageMask = liftIO $ do+  let vkCmdResetEvent2Ptr = pVkCmdResetEvent2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdResetEvent2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent2 is null" Nothing Nothing+  let vkCmdResetEvent2' = mkVkCmdResetEvent2 vkCmdResetEvent2Ptr+  traceAroundEvent "vkCmdResetEvent2" (vkCmdResetEvent2' (commandBufferHandle (commandBuffer)) (event) (stageMask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWaitEvents2Unsafe+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()++foreign import ccall+  "dynamic" mkVkCmdWaitEvents2Safe+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()++-- | cmdWaitEvents2 with selectable safeness+cmdWaitEvents2SafeOrUnsafe :: forall io+                            . (MonadIO io)+                           => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ())+                           -> -- | @commandBuffer@ is the command buffer into which the command is+                              -- recorded.+                              CommandBuffer+                           -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.+                              ("events" ::: Vector Event)+                           -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@+                              -- 'DependencyInfo' structures, defining the second+                              -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+                              ("dependencyInfos" ::: Vector DependencyInfo)+                           -> io ()+cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2 commandBuffer events dependencyInfos = liftIO . evalContT $ do+  let vkCmdWaitEvents2Ptr = pVkCmdWaitEvents2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdWaitEvents2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents2 is null" Nothing Nothing+  let vkCmdWaitEvents2' = mkVkCmdWaitEvents2 vkCmdWaitEvents2Ptr+  let pEventsLength = Data.Vector.length $ (events)+  lift $ unless ((Data.Vector.length $ (dependencyInfos)) == pEventsLength) $+    throwIO $ IOError Nothing InvalidArgument "" "pDependencyInfos and pEvents must have the same length" Nothing Nothing+  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)+  pPDependencyInfos <- ContT $ allocaBytes @DependencyInfo ((Data.Vector.length (dependencyInfos)) * 64)+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPDependencyInfos `plusPtr` (64 * (i)) :: Ptr DependencyInfo) (e) . ($ ())) (dependencyInfos)+  lift $ traceAroundEvent "vkCmdWaitEvents2" (vkCmdWaitEvents2' (commandBufferHandle (commandBuffer)) ((fromIntegral pEventsLength :: Word32)) (pPEvents) (pPDependencyInfos))+  pure $ ()++-- | vkCmdWaitEvents2 - Wait for one or more events+--+-- = Description+--+-- When 'cmdWaitEvents2' is submitted to a queue, it inserts memory+-- dependencies according to the elements of @pDependencyInfos@ and each+-- corresponding element of @pEvents@. 'cmdWaitEvents2' /must/ not be used+-- to wait on event signal operations occurring on other queues, or signal+-- operations executed by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- of each memory dependency defined by any element i of @pDependencyInfos@+-- are applied to operations that occurred earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- than the last event signal operation on element i of @pEvents@.+--+-- Signal operations for an event at index i are only included if:+--+-- -   The event was signaled by a 'cmdSetEvent2' command that occurred+--     earlier in+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+--     with a @dependencyInfo@ parameter exactly equal to the element of+--     @pDependencyInfos@ at index i ; or+--+-- -   The event was created without+--     'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT',+--     and the first+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+--     defined by the element of @pDependencyInfos@ at index i only+--     includes host operations+--     ('Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT').+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- of each memory dependency defined by any element i of @pDependencyInfos@+-- are applied to operations that occurred later in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- than 'cmdWaitEvents2'.+--+-- Note+--+-- 'cmdWaitEvents2' is used with 'cmdSetEvent2' to define a memory+-- dependency between two sets of action commands, roughly in the same way+-- as pipeline barriers, but split into two commands such that work between+-- the two /may/ execute unhindered.+--+-- Note+--+-- Applications should be careful to avoid race conditions when using+-- events. There is no direct ordering guarantee between 'cmdSetEvent2' and+-- 'cmdResetEvent2', 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',+-- or 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'. Another execution+-- dependency (e.g. a pipeline barrier or semaphore with+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT')+-- is needed to prevent such a race condition.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWaitEvents2-synchronization2-03836# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-03837# Members of @pEvents@ /must/+--     not have been signaled by+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-03838# For any element i of+--     @pEvents@, if that event is signaled by 'cmdSetEvent2', that+--     command’s @dependencyInfo@ parameter /must/ be exactly equal to the+--     ith element of @pDependencyInfos@+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-03839# For any element i of+--     @pEvents@, if that event is signaled by+--     'Vulkan.Core10.Event.setEvent', barriers in the ith element of+--     @pDependencyInfos@ /must/ include only host operations in their+--     first+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-03840# For any element i of+--     @pEvents@, if barriers in the ith element of @pDependencyInfos@+--     include only host operations, the ith element of @pEvents@ /must/ be+--     signaled before 'cmdWaitEvents2' is executed+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-03841# For any element i of+--     @pEvents@, if barriers in the ith element of @pDependencyInfos@ do+--     not include host operations, the ith element of @pEvents@ /must/ be+--     signaled by a corresponding 'cmdSetEvent2' that occurred earlier in+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+--+-- -   #VUID-vkCmdWaitEvents2-srcStageMask-03842# The @srcStageMask@ member+--     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+--     @pImageMemoryBarriers@ members of @pDependencyInfos@ /must/ either+--     include only pipeline stages valid for the queue family that was+--     used to create the command pool that @commandBuffer@ was allocated+--     from, or include only+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-vkCmdWaitEvents2-dstStageMask-03843# The @dstStageMask@ member+--     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+--     @pImageMemoryBarriers@ members of @pDependencyInfos@ /must/ only+--     include pipeline stages valid for the queue family that was used to+--     create the command pool that @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdWaitEvents2-dependencyFlags-03844# The @dependencyFlags@+--     member of any element of @pDependencyInfo@ /must/ be @0@+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-03845# If @pEvents@ includes one or+--     more events that will be signaled by 'Vulkan.Core10.Event.setEvent'+--     after @commandBuffer@ has been submitted to a queue, then+--     'cmdWaitEvents2' /must/ not be called inside a render pass instance+--+-- -   #VUID-vkCmdWaitEvents2-commandBuffer-03846# @commandBuffer@’s+--     current device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWaitEvents2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWaitEvents2-pEvents-parameter# @pEvents@ /must/ be a+--     valid pointer to an array of @eventCount@ valid+--     'Vulkan.Core10.Handles.Event' handles+--+-- -   #VUID-vkCmdWaitEvents2-pDependencyInfos-parameter#+--     @pDependencyInfos@ /must/ be a valid pointer to an array of+--     @eventCount@ valid 'DependencyInfo' structures+--+-- -   #VUID-vkCmdWaitEvents2-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-vkCmdWaitEvents2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdWaitEvents2-eventCount-arraylength# @eventCount@ /must/+--     be greater than @0@+--+-- -   #VUID-vkCmdWaitEvents2-commonparent# Both of @commandBuffer@, and+--     the elements of @pEvents@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfo',+-- 'Vulkan.Core10.Handles.Event'+cmdWaitEvents2 :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command is+                  -- recorded.+                  CommandBuffer+               -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.+                  ("events" ::: Vector Event)+               -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@+                  -- 'DependencyInfo' structures, defining the second+                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+                  ("dependencyInfos" ::: Vector DependencyInfo)+               -> io ()+cmdWaitEvents2 = cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2Unsafe++-- | A variant of 'cmdWaitEvents2' which makes a *safe* FFI call+cmdWaitEvents2Safe :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command is+                      -- recorded.+                      CommandBuffer+                   -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.+                      ("events" ::: Vector Event)+                   -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@+                      -- 'DependencyInfo' structures, defining the second+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+                      ("dependencyInfos" ::: Vector DependencyInfo)+                   -> io ()+cmdWaitEvents2Safe = cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2Safe+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdPipelineBarrier2+  :: FunPtr (Ptr CommandBuffer_T -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Ptr DependencyInfo -> IO ()++-- | vkCmdPipelineBarrier2 - Insert a memory dependency+--+-- = Description+--+-- When 'cmdPipelineBarrier2' is submitted to a queue, it defines memory+-- dependencies between commands that were submitted before it, and those+-- submitted after it.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- of each memory dependency defined by @pDependencyInfo@ are applied to+-- operations that occurred earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- of each memory dependency defined by @pDependencyInfo@ are applied to+-- operations that occurred later in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- If 'cmdPipelineBarrier2' is recorded within a render pass instance, the+-- synchronization scopes are+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies limited to operations within the same subpass>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdPipelineBarrier2-pDependencies-02285# If+--     'cmdPipelineBarrier2' is called within a render pass instance, the+--     render pass /must/ have been created with at least one+--     'Vulkan.Core10.Pass.SubpassDependency' instance in+--     'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that+--     expresses a dependency from the current subpass to itself, with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+--     that are all supersets of the scopes defined in this command+--+-- -   #VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178# If+--     'cmdPipelineBarrier2' is called within a render pass instance, it+--     /must/ not include any buffer memory barriers+--+-- -   #VUID-vkCmdPipelineBarrier2-image-04073# If 'cmdPipelineBarrier2' is+--     called within a render pass instance, the @image@ member of any+--     image memory barrier included in this command /must/ be an+--     attachment used in the current subpass both as an input attachment,+--     and as either a color or depth\/stencil attachment+--+-- -   #VUID-vkCmdPipelineBarrier2-oldLayout-01181# If+--     'cmdPipelineBarrier2' is called within a render pass instance, the+--     @oldLayout@ and @newLayout@ members of any image memory barrier+--     included in this command /must/ be equal+--+-- -   #VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182# If+--     'cmdPipelineBarrier2' is called within a render pass instance, the+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image+--     memory barrier included in this command /must/ be equal+--+-- -   #VUID-vkCmdPipelineBarrier2-dependencyFlags-01186# If+--     'cmdPipelineBarrier2' is called outside of a render pass instance,+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'+--     /must/ not be included in the dependency flags+--+-- -   #VUID-vkCmdPipelineBarrier2-None-06191# If 'cmdPipelineBarrier2' is+--     called within a render pass instance, the render pass /must/ not+--     have been started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdPipelineBarrier2-synchronization2-03848# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdPipelineBarrier2-srcStageMask-03849# The @srcStageMask@+--     member of any element of the @pMemoryBarriers@,+--     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of+--     @pDependencyInfo@ /must/ only include pipeline stages valid for the+--     queue family that was used to create the command pool that+--     @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdPipelineBarrier2-dstStageMask-03850# The @dstStageMask@+--     member of any element of the @pMemoryBarriers@,+--     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of+--     @pDependencyInfo@ /must/ only include pipeline stages valid for the+--     queue family that was used to create the command pool that+--     @commandBuffer@ was allocated from+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdPipelineBarrier2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter#+--     @pDependencyInfo@ /must/ be a valid pointer to a valid+--     'DependencyInfo' structure+--+-- -   #VUID-vkCmdPipelineBarrier2-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-vkCmdPipelineBarrier2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfo'+cmdPipelineBarrier2 :: forall io+                     . (MonadIO io)+                    => -- | @commandBuffer@ is the command buffer into which the command is+                       -- recorded.+                       CommandBuffer+                    -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfo' structure defining+                       -- the scopes of this operation.+                       DependencyInfo+                    -> io ()+cmdPipelineBarrier2 commandBuffer dependencyInfo = liftIO . evalContT $ do+  let vkCmdPipelineBarrier2Ptr = pVkCmdPipelineBarrier2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdPipelineBarrier2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier2 is null" Nothing Nothing+  let vkCmdPipelineBarrier2' = mkVkCmdPipelineBarrier2 vkCmdPipelineBarrier2Ptr+  pDependencyInfo <- ContT $ withCStruct (dependencyInfo)+  lift $ traceAroundEvent "vkCmdPipelineBarrier2" (vkCmdPipelineBarrier2' (commandBufferHandle (commandBuffer)) pDependencyInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkQueueSubmit2+  :: FunPtr (Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2) -> Fence -> IO Result) -> Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2) -> Fence -> IO Result++-- | vkQueueSubmit2 - Submits command buffers to a queue+--+-- = Description+--+-- 'queueSubmit2' is a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- with each batch defined by an element of @pSubmits@.+--+-- Semaphore operations submitted with 'queueSubmit2' have additional+-- ordering constraints compared to other submission commands, with+-- dependencies involving previous and subsequent queue operations.+-- Information about these additional constraints can be found in the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore>+-- section of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+--+-- If any command buffer submitted to this queue is in the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,+-- it is moved to the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>.+-- Once execution of all submissions of a command buffer complete, it moves+-- from the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- back to the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- If a command buffer was recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT'+-- flag, it instead moves back to the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.+--+-- If 'queueSubmit2' fails, it /may/ return+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'. If it does, the+-- implementation /must/ ensure that the state and contents of any+-- resources or synchronization primitives referenced by the submitted+-- command buffers and any semaphores referenced by @pSubmits@ is+-- unaffected by the call or its failure. If 'queueSubmit2' fails in such a+-- way that the implementation is unable to make that guarantee, the+-- implementation /must/ return+-- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'. See+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.+--+-- == Valid Usage+--+-- -   #VUID-vkQueueSubmit2-fence-04894# If @fence@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be+--     unsignaled+--+-- -   #VUID-vkQueueSubmit2-fence-04895# If @fence@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be+--     associated with any other queue command that has not yet completed+--     execution on that queue+--+-- -   #VUID-vkQueueSubmit2-synchronization2-03866# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03867# If a command recorded into+--     the @commandBuffer@ member of any element of the+--     @pCommandBufferInfos@ member of any element of @pSubmits@ referenced+--     an 'Vulkan.Core10.Handles.Event', that event /must/ not be+--     referenced by a command that has been submitted to another queue and+--     is still in the /pending state/+--+-- -   #VUID-vkQueueSubmit2-semaphore-03868# The @semaphore@ member of any+--     binary semaphore element of the @pSignalSemaphoreInfos@ member of+--     any element of @pSubmits@ /must/ be unsignaled when the semaphore+--     signal operation it defines is executed on the device+--+-- -   #VUID-vkQueueSubmit2-stageMask-03869# The @stageMask@ member of any+--     element of the @pSignalSemaphoreInfos@ member of any element of+--     @pSubmits@ /must/ only include pipeline stages that are supported by+--     the queue family which @queue@ belongs to+--+-- -   #VUID-vkQueueSubmit2-stageMask-03870# The @stageMask@ member of any+--     element of the @pWaitSemaphoreInfos@ member of any element of+--     @pSubmits@ /must/ only include pipeline stages that are supported by+--     the queue family which @queue@ belongs to+--+-- -   #VUID-vkQueueSubmit2-semaphore-03871# When a semaphore wait+--     operation for a binary semaphore is executed, as defined by the+--     @semaphore@ member of any element of the @pWaitSemaphoreInfos@+--     member of any element of @pSubmits@, there /must/ be no other queues+--     waiting on the same semaphore+--+-- -   #VUID-vkQueueSubmit2-semaphore-03872# The @semaphore@ member of any+--     element of the @pWaitSemaphoreInfos@ member of any element of+--     @pSubmits@ /must/ be semaphores that are signaled, or have+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+--     previously submitted for execution+--+-- -   #VUID-vkQueueSubmit2-semaphore-03873# Any @semaphore@ member of any+--     element of the @pWaitSemaphoreInfos@ member of any element of+--     @pSubmits@ that was created with a+--     'Vulkan.Extensions.VK_KHR_timeline_semaphore.SemaphoreTypeKHR' of+--     'Vulkan.Extensions.VK_KHR_timeline_semaphore.SEMAPHORE_TYPE_BINARY_KHR'+--     /must/ reference a semaphore signal operation that has been+--     submitted for execution and any semaphore signal operations on which+--     it depends (if any) /must/ have also been submitted for execution+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03874# The @commandBuffer@ member+--     of any element of the @pCommandBufferInfos@ member of any element of+--     @pSubmits@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03875# If a command recorded into+--     the @commandBuffer@ member of any element of the+--     @pCommandBufferInfos@ member of any element of @pSubmits@ was not+--     recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT',+--     it /must/ not be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03876# Any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+--     into the @commandBuffer@ member of any element of the+--     @pCommandBufferInfos@ member of any element of @pSubmits@ /must/ be+--     in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03877# If any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+--     into the @commandBuffer@ member of any element of the+--     @pCommandBufferInfos@ member of any element of @pSubmits@ was not+--     recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT',+--     it /must/ not be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03878# The @commandBuffer@ member+--     of any element of the @pCommandBufferInfos@ member of any element of+--     @pSubmits@ /must/ have been allocated from a+--     'Vulkan.Core10.Handles.CommandPool' that was created for the same+--     queue family @queue@ belongs to+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03879# If a command recorded into+--     the @commandBuffer@ member of any element of the+--     @pCommandBufferInfos@ member of any element of @pSubmits@ includes a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,+--     there /must/ exist a previously submitted+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>+--     on a queue in the queue family identified by the acquire operation,+--     with parameters matching the acquire operation as defined in the+--     definition of such+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,+--     and which happens before the acquire operation+--+-- -   #VUID-vkQueueSubmit2-commandBuffer-03880# If a command recorded into+--     the @commandBuffer@ member of any element of the+--     @pCommandBufferInfos@ member of any element of @pSubmits@ was a+--     'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' whose+--     @queryPool@ was created with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lock profiling lock>+--     /must/ have been held continuously on the+--     'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from,+--     throughout recording of those command buffers+--+-- -   #VUID-vkQueueSubmit2-queue-06447# If @queue@ was not created with+--     'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT',+--     the @flags@ member of any element of @pSubmits@ /must/ not include+--     'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT_KHR'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkQueueSubmit2-queue-parameter# @queue@ /must/ be a valid+--     'Vulkan.Core10.Handles.Queue' handle+--+-- -   #VUID-vkQueueSubmit2-pSubmits-parameter# If @submitCount@ is not+--     @0@, @pSubmits@ /must/ be a valid pointer to an array of+--     @submitCount@ valid 'SubmitInfo2' structures+--+-- -   #VUID-vkQueueSubmit2-fence-parameter# If @fence@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be a valid+--     'Vulkan.Core10.Handles.Fence' handle+--+-- -   #VUID-vkQueueSubmit2-commonparent# Both of @fence@, and @queue@ that+--     are valid handles of non-ignored parameters /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @queue@ /must/ be externally synchronized+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | -                                                                                                                          | -                                                                                                                      | Any                                                                                                                   |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- == 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'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Fence', 'Vulkan.Core10.Handles.Queue',+-- 'SubmitInfo2'+queueSubmit2 :: forall io+              . (MonadIO io)+             => -- | @queue@ is the queue that the command buffers will be submitted to.+                Queue+             -> -- | @pSubmits@ is a pointer to an array of 'SubmitInfo2' structures, each+                -- specifying a command buffer submission batch.+                ("submits" ::: Vector (SomeStruct SubmitInfo2))+             -> -- | @fence@ is an /optional/ handle to a fence to be signaled once all+                -- submitted command buffers have completed execution. If @fence@ is not+                -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a+                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+                Fence+             -> io ()+queueSubmit2 queue submits fence = liftIO . evalContT $ do+  let vkQueueSubmit2Ptr = pVkQueueSubmit2 (case queue of Queue{deviceCmds} -> deviceCmds)+  lift $ unless (vkQueueSubmit2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueSubmit2 is null" Nothing Nothing+  let vkQueueSubmit2' = mkVkQueueSubmit2 vkQueueSubmit2Ptr+  pPSubmits <- ContT $ allocaBytes @(SubmitInfo2 _) ((Data.Vector.length (submits)) * 64)+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPSubmits `plusPtr` (64 * (i)) :: Ptr (SubmitInfo2 _))) (e) . ($ ())) (submits)+  r <- lift $ traceAroundEvent "vkQueueSubmit2" (vkQueueSubmit2' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWriteTimestamp2+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> Word32 -> IO ()++-- | vkCmdWriteTimestamp2 - Write a device timestamp into a query object+--+-- = Description+--+-- When 'cmdWriteTimestamp2' is submitted to a queue, it defines an+-- execution dependency on commands that were submitted before it, and+-- writes a timestamp to a query pool.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- The synchronization scope is limited to operations on the pipeline stage+-- specified by @stage@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the timestamp write operation.+--+-- When the timestamp value is written, the availability status of the+-- query is set to available.+--+-- Note+--+-- If an implementation is unable to detect completion and latch the timer+-- at any specific stage of the pipeline, it /may/ instead do so at any+-- logically later stage.+--+-- Comparisons between timestamps are not meaningful if the timestamps are+-- written by commands submitted to different queues.+--+-- Note+--+-- An example of such a comparison is subtracting an older timestamp from a+-- newer one to determine the execution time of a sequence of commands.+--+-- If 'cmdWriteTimestamp2' is called while executing a render pass instance+-- that has multiview enabled, the timestamp uses N consecutive query+-- indices in the query pool (starting at @query@) where N is the number of+-- bits set in the view mask of the subpass the command is executed in. The+-- resulting query values are determined by an implementation-dependent+-- choice of one of the following behaviors:+--+-- -   The first query is a timestamp value and (if more than one bit is+--     set in the view mask) zero is written to the remaining queries. If+--     two timestamps are written in the same subpass, the sum of the+--     execution time of all views between those commands is the difference+--     between the first query written by each command.+--+-- -   All N queries are timestamp values. If two timestamps are written in+--     the same subpass, the sum of the execution time of all views between+--     those commands is the sum of the difference between corresponding+--     queries written by each command. The difference between+--     corresponding queries /may/ be the execution time of a single view.+--+-- In either case, the application /can/ sum the differences between all N+-- queries to determine the total execution time.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-vkCmdWriteTimestamp2-synchronization2-03858# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03859# @stage@ /must/ only include+--     a single pipeline stage+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-03860# @stage@ /must/ only include+--     stages valid for the queue family that was used to create the+--     command pool that @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdWriteTimestamp2-queryPool-03861# @queryPool@ /must/ have+--     been created with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- -   #VUID-vkCmdWriteTimestamp2-queryPool-03862# The query identified by+--     @queryPool@ and @query@ /must/ be /unavailable/+--+-- -   #VUID-vkCmdWriteTimestamp2-timestampValidBits-03863# The command+--     pool’s queue family /must/ support a non-zero @timestampValidBits@+--+-- -   #VUID-vkCmdWriteTimestamp2-query-04903# @query@ /must/ be less than+--     the number of queries in @queryPool@+--+-- -   #VUID-vkCmdWriteTimestamp2-None-03864# All queries used by the+--     command /must/ be unavailable+--+-- -   #VUID-vkCmdWriteTimestamp2-query-03865# If 'cmdWriteTimestamp2' is+--     called within a render pass instance, the sum of @query@ and the+--     number of bits set in the current subpass’s view mask /must/ be less+--     than or equal to the number of queries in @queryPool@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWriteTimestamp2-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWriteTimestamp2-stage-parameter# @stage@ /must/ be a+--     valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-vkCmdWriteTimestamp2-queryPool-parameter# @queryPool@ /must/+--     be a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdWriteTimestamp2-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-vkCmdWriteTimestamp2-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, compute, decode,+--     or encode operations+--+-- -   #VUID-vkCmdWriteTimestamp2-commonparent# Both of @commandBuffer@,+--     and @queryPool@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Handles.QueryPool'+cmdWriteTimestamp2 :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command will be+                      -- recorded.+                      CommandBuffer+                   -> -- | @stage@ specifies a stage of the pipeline.+                      PipelineStageFlags2+                   -> -- | @queryPool@ is the query pool that will manage the timestamp.+                      QueryPool+                   -> -- | @query@ is the query within the query pool that will contain the+                      -- timestamp.+                      ("query" ::: Word32)+                   -> io ()+cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do+  let vkCmdWriteTimestamp2Ptr = pVkCmdWriteTimestamp2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdWriteTimestamp2Ptr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp2 is null" Nothing Nothing+  let vkCmdWriteTimestamp2' = mkVkCmdWriteTimestamp2 vkCmdWriteTimestamp2Ptr+  traceAroundEvent "vkCmdWriteTimestamp2" (vkCmdWriteTimestamp2' (commandBufferHandle (commandBuffer)) (stage) (queryPool) (query))+  pure $ ()+++-- | VkMemoryBarrier2 - Structure specifying a global memory barrier+--+-- = Description+--+-- This structure defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>+-- affecting all device memory.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- described by this structure include only operations and memory accesses+-- specified by @srcStageMask@ and @srcAccessMask@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- described by this structure include only operations and memory accesses+-- specified by @dstStageMask@ and @dstAccessMask@.+--+-- == Valid Usage+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03901# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03902# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03903# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03904# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03905# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03906# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03907# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03908# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03910# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03911# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03912# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03913# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03914# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03915# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03917# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03918# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03919# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03920# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-04747# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03922# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03923# If @srcAccessMask@+--     includes+--     'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-04994# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03924# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03925# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03926# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03927# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-03928# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-06256# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     is not enabled and @srcAccessMask@ includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @srcStageMask@ /must/ not include any of the+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03901# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03902# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03903# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03904# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03905# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03906# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03907# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03908# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03910# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03911# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03912# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03913# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03914# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03915# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03917# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03918# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03919# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03920# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-04747# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03922# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03923# If @dstAccessMask@+--     includes+--     'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-04994# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03924# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03925# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03926# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03927# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-03928# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-06256# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     is not enabled and @dstAccessMask@ includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @dstStageMask@ /must/ not include any of the+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkMemoryBarrier2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2'+--+-- -   #VUID-VkMemoryBarrier2-srcStageMask-parameter# @srcStageMask@ /must/+--     be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-parameter# @srcAccessMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- -   #VUID-VkMemoryBarrier2-dstStageMask-parameter# @dstStageMask@ /must/+--     be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-parameter# @dstAccessMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2', 'DependencyInfo',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data MemoryBarrier2 = MemoryBarrier2+  { -- | @srcStageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.+    srcStageMask :: PipelineStageFlags2+  , -- | @srcAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'+    -- mask of access flags to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.+    srcAccessMask :: AccessFlags2+  , -- | @dstStageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.+    dstStageMask :: PipelineStageFlags2+  , -- | @dstAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'+    -- mask of access flags to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.+    dstAccessMask :: AccessFlags2+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryBarrier2)+#endif+deriving instance Show MemoryBarrier2++instance ToCStruct MemoryBarrier2 where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MemoryBarrier2{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)+    poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)+    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)+    poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)+    f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct MemoryBarrier2 where+  peekCStruct p = do+    srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+    srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))+    dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+    dstAccessMask <- peek @AccessFlags2 ((p `plusPtr` 40 :: Ptr AccessFlags2))+    pure $ MemoryBarrier2+             srcStageMask srcAccessMask dstStageMask dstAccessMask++instance Storable MemoryBarrier2 where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryBarrier2 where+  zero = MemoryBarrier2+           zero+           zero+           zero+           zero+++-- | VkImageMemoryBarrier2 - Structure specifying an image memory barrier+--+-- = Description+--+-- This structure defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>+-- limited to an image subresource range, and /can/ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- for that subresource range.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- described by this structure include only operations and memory accesses+-- specified by @srcStageMask@ and @srcAccessMask@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- described by this structure include only operations and memory accesses+-- specified by @dstStageMask@ and @dstAccessMask@.+--+-- Both+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- are limited to only memory accesses to @image@ in the subresource range+-- defined by @subresourceRange@.+--+-- If @image@ was created with+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and+-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory+-- barrier defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.+-- When executed on a queue in the family identified by+-- @srcQueueFamilyIndex@, this barrier defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- for the specified image subresource range, and the second+-- synchronization and access scopes do not synchronize operations on that+-- queue. When executed on a queue in the family identified by+-- @dstQueueFamilyIndex@, this barrier defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- for the specified image subresource range, and the first synchronization+-- and access scopes do not synchronize operations on that queue.+--+-- A+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- is also defined if the values are not equal, and either is one of the+-- special queue family values reserved for external memory ownership+-- transfers, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>.+-- A+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- is defined when @dstQueueFamilyIndex@ is one of those values, and a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- is defined when @srcQueueFamilyIndex@ is one of those values.+--+-- If @oldLayout@ is not equal to @newLayout@, then the memory barrier+-- defines an+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- for the specified image subresource range. If this memory barrier+-- defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>,+-- the layout transition is only executed once between the queues.+--+-- Note+--+-- When the old and new layout are equal, the layout values are ignored -+-- data is preserved no matter what values are specified, or what layout+-- the image is currently in.+--+-- If @image@ has a multi-planar format and the image is /disjoint/, then+-- including+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' in the+-- @aspectMask@ member of @subresourceRange@ is equivalent to including+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', and+-- (for three-plane formats only)+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.+--+-- == Valid Usage+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03901# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03902# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03903# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03904# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03905# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03906# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03907# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03908# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03910# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03911# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03912# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03913# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03914# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03915# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03917# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03918# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03919# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03920# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-04747# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03922# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03923# If @srcAccessMask@+--     includes+--     'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-04994# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03924# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03925# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03926# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03927# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03928# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-06256# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     is not enabled and @srcAccessMask@ includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @srcStageMask@ /must/ not include any of the+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03901# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03902# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03903# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03904# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03905# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03906# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03907# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03908# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03910# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03911# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03912# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03913# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03914# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03915# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03917# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03918# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03919# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03920# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-04747# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03922# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03923# If @dstAccessMask@+--     includes+--     'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-04994# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03924# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03925# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03926# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03927# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03928# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-06256# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     is not enabled and @dstAccessMask@ includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @dstStageMask@ /must/ not include any of the+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01486#+--     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+--     created+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01724# If+--     @subresourceRange.levelCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',+--     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@+--     /must/ be less than or equal to the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01488#+--     @subresourceRange.baseArrayLayer@ /must/ be less than the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01725# If+--     @subresourceRange.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',+--     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@+--     /must/ be less than or equal to the @arrayLayers@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier2-image-01932# If @image@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01208# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01209# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01210# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01211# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01212# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01213# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01197# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     @oldLayout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the+--     current layout of the image subresources affected by the barrier+--+-- -   #VUID-VkImageMemoryBarrier2-newLayout-01198# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     @newLayout@ /must/ not be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01658# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-01659# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+--     then @image@ /must/ have been created with at least one of+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--     set+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--     then @image@ /must/ have been created with at least one of+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--     set+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL',+--     @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL',+--     @image@ /must/ have been created with at least one of+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-02088# If+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     and @oldLayout@ or @newLayout@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--     then @image@ /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     set+--+-- -   #VUID-VkImageMemoryBarrier2-image-01671# If @image@ has a+--     single-plane color format or is not /disjoint/, then the+--     @aspectMask@ member of @subresourceRange@ /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-01672# If @image@ has a+--     multi-planar format and the image is /disjoint/, then the+--     @aspectMask@ member of @subresourceRange@ /must/ include either at+--     least one of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';+--     or /must/ include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-01673# If @image@ has a+--     multi-planar format with only two planes, then the @aspectMask@+--     member of @subresourceRange@ /must/ not include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-03319# If @image@ has a+--     depth\/stencil format with both depth and stencil and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     feature is enabled, then the @aspectMask@ member of+--     @subresourceRange@ /must/ include either or both+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-03320# If @image@ has a+--     depth\/stencil format with both depth and stencil and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     feature is not enabled, then the @aspectMask@ member of+--     @subresourceRange@ /must/ include both+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If+--     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at+--     least one /must/ not be a special queue family reserved for external+--     memory ownership transfers, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- -   #VUID-VkImageMemoryBarrier2-image-04071# If @image@ was created with+--     a sharing mode of+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+--     special queue family values reserved for external memory transfers,+--     the other /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--+-- -   #VUID-VkImageMemoryBarrier2-image-04072# If @image@ was created with+--     a sharing mode of+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid+--     queue families, or one of the special queue family values reserved+--     for external memory transfers, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03854# If either+--     @srcStageMask@ or @dstStageMask@ includes+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be equal+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03855# If @srcStageMask@+--     includes+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',+--     and @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+--     or @oldLayout@ and @newLayout@ define an+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+--     @oldLayout@ /must/ be one of+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageMemoryBarrier2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2'+--+-- -   #VUID-VkImageMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-parameter# @srcStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-parameter# @srcAccessMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-parameter# @dstStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-parameter# @dstAccessMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- -   #VUID-VkImageMemoryBarrier2-oldLayout-parameter# @oldLayout@ /must/+--     be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-VkImageMemoryBarrier2-newLayout-parameter# @newLayout@ /must/+--     be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- -   #VUID-VkImageMemoryBarrier2-image-parameter# @image@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Image' handle+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-parameter#+--     @subresourceRange@ /must/ be a valid+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2', 'DependencyInfo',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageMemoryBarrier2 (es :: [Type]) = ImageMemoryBarrier2+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @srcStageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.+    srcStageMask :: PipelineStageFlags2+  , -- | @srcAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'+    -- mask of access flags to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.+    srcAccessMask :: AccessFlags2+  , -- | @dstStageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.+    dstStageMask :: PipelineStageFlags2+  , -- | @dstAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'+    -- mask of access flags to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.+    dstAccessMask :: AccessFlags2+  , -- | @oldLayout@ is the old layout in an+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+    oldLayout :: ImageLayout+  , -- | @newLayout@ is the new layout in an+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+    newLayout :: ImageLayout+  , -- | @srcQueueFamilyIndex@ is the source queue family for a+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    srcQueueFamilyIndex :: Word32+  , -- | @dstQueueFamilyIndex@ is the destination queue family for a+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    dstQueueFamilyIndex :: Word32+  , -- | @image@ is a handle to the image affected by this barrier.+    image :: Image+  , -- | @subresourceRange@ describes the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range>+    -- within @image@ that is affected by this barrier.+    subresourceRange :: ImageSubresourceRange+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageMemoryBarrier2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (ImageMemoryBarrier2 es)++instance Extensible ImageMemoryBarrier2 where+  extensibleTypeName = "ImageMemoryBarrier2"+  setNext ImageMemoryBarrier2{..} next' = ImageMemoryBarrier2{next = next', ..}+  getNext ImageMemoryBarrier2{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier2 e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f+    | otherwise = Nothing++instance (Extendss ImageMemoryBarrier2 es, PokeChain es) => ToCStruct (ImageMemoryBarrier2 es) where+  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageMemoryBarrier2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)+    lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)+    lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)+    lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)+    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (oldLayout)+    lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (newLayout)+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (srcQueueFamilyIndex)+    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (dstQueueFamilyIndex)+    lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (image)+    lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (subresourceRange)+    lift $ f+  cStructSize = 96+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)+    lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (zero)+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (zero)+    lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero)+    lift $ f++instance (Extendss ImageMemoryBarrier2 es, PeekChain es) => FromCStruct (ImageMemoryBarrier2 es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+    srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))+    dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+    dstAccessMask <- peek @AccessFlags2 ((p `plusPtr` 40 :: Ptr AccessFlags2))+    oldLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))+    newLayout <- peek @ImageLayout ((p `plusPtr` 52 :: Ptr ImageLayout))+    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+    image <- peek @Image ((p `plusPtr` 64 :: Ptr Image))+    subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 72 :: Ptr ImageSubresourceRange))+    pure $ ImageMemoryBarrier2+             next srcStageMask srcAccessMask dstStageMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange++instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where+  zero = ImageMemoryBarrier2+           ()+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkBufferMemoryBarrier2 - Structure specifying a buffer memory barrier+--+-- = Description+--+-- This structure defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>+-- limited to a range of a buffer, and /can/ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- for that range.+--+-- The first+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- described by this structure include only operations and memory accesses+-- specified by @srcStageMask@ and @srcAccessMask@.+--+-- The second+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- described by this structure include only operations and memory accesses+-- specified by @dstStageMask@ and @dstAccessMask@.+--+-- Both+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- are limited to only memory accesses to @buffer@ in the range defined by+-- @offset@ and @size@.+--+-- If @buffer@ was created with+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and+-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory+-- barrier defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.+-- When executed on a queue in the family identified by+-- @srcQueueFamilyIndex@, this barrier defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- for the specified buffer range, and the second synchronization and+-- access scopes do not synchronize operations on that queue. When executed+-- on a queue in the family identified by @dstQueueFamilyIndex@, this+-- barrier defines a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- for the specified buffer range, and the first synchronization and access+-- scopes do not synchronize operations on that queue.+--+-- A+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- is also defined if the values are not equal, and either is one of the+-- special queue family values reserved for external memory ownership+-- transfers, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>.+-- A+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- is defined when @dstQueueFamilyIndex@ is one of those values, and a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- is defined when @srcQueueFamilyIndex@ is one of those values.+--+-- == Valid Usage+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03901# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03902# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03903# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03904# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03905# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03906# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03907# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03908# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03910# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03911# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03912# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03913# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03914# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03915# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03917# If @srcAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03918# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03919# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03920# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-04747# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03922# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03923# If @srcAccessMask@+--     includes+--     'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-04994# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03924# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03925# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03926# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03927# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03928# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-06256# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     is not enabled and @srcAccessMask@ includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @srcStageMask@ /must/ not include any of the+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03901# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03902# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03903# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03904# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03905# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03906# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03907# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03908# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+--     @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 the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03910# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03911# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03912# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03913# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03914# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03915# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03917# If @dstAccessMask@+--     includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03918# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03919# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03920# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-04747# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03922# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03923# If @dstAccessMask@+--     includes+--     'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-04994# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03924# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03925# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03926# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03927# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+--     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03928# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-06256# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     is not enabled and @dstAccessMask@ includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+--     @dstStageMask@ /must/ not include any of the+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- -   #VUID-VkBufferMemoryBarrier2-offset-01187# @offset@ /must/ be less+--     than the size of @buffer@+--+-- -   #VUID-VkBufferMemoryBarrier2-size-01188# If @size@ is not equal to+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater+--     than @0@+--+-- -   #VUID-VkBufferMemoryBarrier2-size-01189# If @size@ is not equal to+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than+--     or equal to than the size of @buffer@ minus @offset@+--+-- -   #VUID-VkBufferMemoryBarrier2-buffer-01931# If @buffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087# If+--     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at+--     least one /must/ not be a special queue family reserved for external+--     memory ownership transfers, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- -   #VUID-VkBufferMemoryBarrier2-buffer-04088# If @buffer@ was created+--     with a sharing mode of+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+--     special queue family values reserved for external memory transfers,+--     the other /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--+-- -   #VUID-VkBufferMemoryBarrier2-buffer-04089# If @buffer@ was created+--     with a sharing mode of+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid+--     queue families, or one of the special queue family values reserved+--     for external memory transfers, as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03851# If either+--     @srcStageMask@ or @dstStageMask@ includes+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be equal+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkBufferMemoryBarrier2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2'+--+-- -   #VUID-VkBufferMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-parameter# @srcStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter#+--     @srcAccessMask@ /must/ be a valid combination of+--     'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-parameter# @dstStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter#+--     @dstAccessMask@ /must/ be a valid combination of+--     'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- -   #VUID-VkBufferMemoryBarrier2-buffer-parameter# @buffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2',+-- 'Vulkan.Core10.Handles.Buffer', 'DependencyInfo',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferMemoryBarrier2 = BufferMemoryBarrier2+  { -- | @srcStageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.+    srcStageMask :: PipelineStageFlags2+  , -- | @srcAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'+    -- mask of access flags to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.+    srcAccessMask :: AccessFlags2+  , -- | @dstStageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.+    dstStageMask :: PipelineStageFlags2+  , -- | @dstAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'+    -- mask of access flags to be included in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.+    dstAccessMask :: AccessFlags2+  , -- | @srcQueueFamilyIndex@ is the source queue family for a+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    srcQueueFamilyIndex :: Word32+  , -- | @dstQueueFamilyIndex@ is the destination queue family for a+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+    dstQueueFamilyIndex :: Word32+  , -- | @buffer@ is a handle to the buffer whose backing memory is affected by+    -- the barrier.+    buffer :: Buffer+  , -- | @offset@ is an offset in bytes into the backing memory for @buffer@;+    -- this is relative to the base offset as bound to the buffer (see+    -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory').+    offset :: DeviceSize+  , -- | @size@ is a size in bytes of the affected area of backing memory for+    -- @buffer@, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to use the range+    -- from @offset@ to the end of the buffer.+    size :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferMemoryBarrier2)+#endif+deriving instance Show BufferMemoryBarrier2++instance ToCStruct BufferMemoryBarrier2 where+  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferMemoryBarrier2{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)+    poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)+    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)+    poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)+    poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)+    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)+    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)+    f+  cStructSize = 80+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)+    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct BufferMemoryBarrier2 where+  peekCStruct p = do+    srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+    srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))+    dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+    dstAccessMask <- peek @AccessFlags2 ((p `plusPtr` 40 :: Ptr AccessFlags2))+    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+    buffer <- peek @Buffer ((p `plusPtr` 56 :: Ptr Buffer))+    offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))+    size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))+    pure $ BufferMemoryBarrier2+             srcStageMask srcAccessMask dstStageMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size++instance Storable BufferMemoryBarrier2 where+  sizeOf ~_ = 80+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferMemoryBarrier2 where+  zero = BufferMemoryBarrier2+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkDependencyInfo - Structure specifying dependency information for a+-- synchronization command+--+-- = Description+--+-- This structure defines a set of+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependencies>,+-- as well as+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+--+-- Each member of @pMemoryBarriers@, @pBufferMemoryBarriers@, and+-- @pImageMemoryBarriers@ defines a separate+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkDependencyInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO'+--+-- -   #VUID-VkDependencyInfo-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkDependencyInfo-dependencyFlags-parameter# @dependencyFlags@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values+--+-- -   #VUID-VkDependencyInfo-pMemoryBarriers-parameter# If+--     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+--     pointer to an array of @memoryBarrierCount@ valid 'MemoryBarrier2'+--     structures+--+-- -   #VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter# If+--     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+--     valid 'BufferMemoryBarrier2' structures+--+-- -   #VUID-VkDependencyInfo-pImageMemoryBarriers-parameter# If+--     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+--     be a valid pointer to an array of @imageMemoryBarrierCount@ valid+--     'ImageMemoryBarrier2' structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'BufferMemoryBarrier2',+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',+-- 'ImageMemoryBarrier2', 'MemoryBarrier2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdPipelineBarrier2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',+-- 'cmdSetEvent2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR',+-- 'cmdWaitEvents2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR'+data DependencyInfo = DependencyInfo+  { -- | @dependencyFlags@ is a bitmask of+    -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying+    -- how execution and memory dependencies are formed.+    dependencyFlags :: DependencyFlags+  , -- | @pMemoryBarriers@ is a pointer to an array of 'MemoryBarrier2'+    -- structures defining memory dependencies between any memory accesses.+    memoryBarriers :: Vector MemoryBarrier2+  , -- | @pBufferMemoryBarriers@ is a pointer to an array of+    -- 'BufferMemoryBarrier2' structures defining memory dependencies between+    -- buffer ranges.+    bufferMemoryBarriers :: Vector BufferMemoryBarrier2+  , -- | @pImageMemoryBarriers@ is a pointer to an array of 'ImageMemoryBarrier2'+    -- structures defining memory dependencies between image subresources.+    imageMemoryBarriers :: Vector (SomeStruct ImageMemoryBarrier2)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DependencyInfo)+#endif+deriving instance Show DependencyInfo++instance ToCStruct DependencyInfo where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DependencyInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr DependencyFlags)) (dependencyFlags)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))+    pPMemoryBarriers' <- ContT $ allocaBytes @MemoryBarrier2 ((Data.Vector.length (memoryBarriers)) * 48)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2) (e)) (memoryBarriers)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2))) (pPMemoryBarriers')+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))+    pPBufferMemoryBarriers' <- ContT $ allocaBytes @BufferMemoryBarrier2 ((Data.Vector.length (bufferMemoryBarriers)) * 80)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2) (e)) (bufferMemoryBarriers)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2))) (pPBufferMemoryBarriers')+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))+    pPImageMemoryBarriers' <- ContT $ allocaBytes @(ImageMemoryBarrier2 _) ((Data.Vector.length (imageMemoryBarriers)) * 96)+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _))) (e) . ($ ())) (imageMemoryBarriers)+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2 _)))) (pPImageMemoryBarriers')+    lift $ f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct DependencyInfo where+  peekCStruct p = do+    dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 16 :: Ptr DependencyFlags))+    memoryBarrierCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pMemoryBarriers <- peek @(Ptr MemoryBarrier2) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2)))+    pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2 ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2)))+    bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2)))+    pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2 ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2)))+    imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2 _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2 _))))+    pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _)))))+    pure $ DependencyInfo+             dependencyFlags pMemoryBarriers' pBufferMemoryBarriers' pImageMemoryBarriers'++instance Zero DependencyInfo where+  zero = DependencyInfo+           zero+           mempty+           mempty+           mempty+++-- | VkSemaphoreSubmitInfo - Structure specifying a semaphore signal or wait+-- operation+--+-- = Description+--+-- Whether this structure defines a semaphore wait or signal operation is+-- defined by how it is used.+--+-- == Valid Usage+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-VkSemaphoreSubmitInfo-device-03888# If the @device@ that+--     @semaphore@ was created on is not a device group, @deviceIndex@+--     /must/ be @0@+--+-- -   #VUID-VkSemaphoreSubmitInfo-device-03889# If the @device@ that+--     @semaphore@ was created on is a device group, @deviceIndex@ /must/+--     be a valid device index+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSemaphoreSubmitInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO'+--+-- -   #VUID-VkSemaphoreSubmitInfo-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkSemaphoreSubmitInfo-semaphore-parameter# @semaphore@ /must/+--     be a valid 'Vulkan.Core10.Handles.Semaphore' handle+--+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-parameter# @stageMask@ /must/+--     be a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'+data SemaphoreSubmitInfo = SemaphoreSubmitInfo+  { -- | @semaphore@ is a 'Vulkan.Core10.Handles.Semaphore' affected by this+    -- operation.+    semaphore :: Semaphore+  , -- | @value@ is either the value used to signal @semaphore@ or the value+    -- waited on by @semaphore@, if @semaphore@ is a timeline semaphore.+    -- Otherwise it is ignored.+    value :: Word64+  , -- | @stageMask@ is a+    -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+    -- pipeline stages which limit the first synchronization scope of a+    -- semaphore signal operation, or second synchronization scope of a+    -- semaphore wait operation as described in the+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>+    -- and+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+    -- sections of+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+    stageMask :: PipelineStageFlags2+  , -- | @deviceIndex@ is the index of the device within a device group that+    -- executes the semaphore wait or signal operation.+    deviceIndex :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SemaphoreSubmitInfo)+#endif+deriving instance Show SemaphoreSubmitInfo++instance ToCStruct SemaphoreSubmitInfo where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SemaphoreSubmitInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+    poke ((p `plusPtr` 24 :: Ptr Word64)) (value)+    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (stageMask)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (deviceIndex)+    f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    f++instance FromCStruct SemaphoreSubmitInfo where+  peekCStruct p = do+    semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+    value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))+    stageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+    deviceIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    pure $ SemaphoreSubmitInfo+             semaphore value stageMask deviceIndex++instance Storable SemaphoreSubmitInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SemaphoreSubmitInfo where+  zero = SemaphoreSubmitInfo+           zero+           zero+           zero+           zero+++-- | VkCommandBufferSubmitInfo - Structure specifying a command buffer+-- submission+--+-- == Valid Usage+--+-- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-03890# @commandBuffer@+--     /must/ not have been allocated with+--     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'+--+-- -   #VUID-VkCommandBufferSubmitInfo-deviceMask-03891# If @deviceMask@ is+--     not @0@, it /must/ be a valid device mask+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCommandBufferSubmitInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO'+--+-- -   #VUID-VkCommandBufferSubmitInfo-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'+data CommandBufferSubmitInfo = CommandBufferSubmitInfo+  { -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be+    -- submitted for execution.+    commandBuffer :: Ptr CommandBuffer_T+  , -- | @deviceMask@ is a bitmask indicating which devices in a device group+    -- execute the command buffer. A @deviceMask@ of @0@ is equivalent to+    -- setting all bits corresponding to valid devices in the group to @1@.+    deviceMask :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CommandBufferSubmitInfo)+#endif+deriving instance Show CommandBufferSubmitInfo++instance ToCStruct CommandBufferSubmitInfo where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CommandBufferSubmitInfo{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    f++instance FromCStruct CommandBufferSubmitInfo where+  peekCStruct p = do+    commandBuffer <- peek @(Ptr CommandBuffer_T) ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T)))+    deviceMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    pure $ CommandBufferSubmitInfo+             commandBuffer deviceMask++instance Storable CommandBufferSubmitInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CommandBufferSubmitInfo where+  zero = CommandBufferSubmitInfo+           zero+           zero+++-- | VkSubmitInfo2 - Structure specifying a queue submit operation+--+-- == Valid Usage+--+-- -   #VUID-VkSubmitInfo2-semaphore-03881# If the same semaphore is used+--     as the @semaphore@ member of both an element of+--     @pSignalSemaphoreInfos@ and @pWaitSemaphoreInfos@, and that+--     semaphore is a timeline semaphore, the @value@ member of the+--     @pSignalSemaphoreInfos@ element /must/ be greater than the @value@+--     member of the @pWaitSemaphoreInfos@ element+--+-- -   #VUID-VkSubmitInfo2-semaphore-03882# If the @semaphore@ member of+--     any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the+--     @value@ member of that element /must/ have a value greater than the+--     current value of the semaphore when the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     is executed+--+-- -   #VUID-VkSubmitInfo2-semaphore-03883# If the @semaphore@ member of+--     any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the+--     @value@ member of that element /must/ have a value which does not+--     differ from the current value of the semaphore or the value of any+--     outstanding semaphore wait or signal operation on that semaphore by+--     more than+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+--+-- -   #VUID-VkSubmitInfo2-semaphore-03884# If the @semaphore@ member of+--     any element of @pWaitSemaphoreInfos@ is a timeline semaphore, the+--     @value@ member of that element /must/ have a value which does not+--     differ from the current value of the semaphore or the value of any+--     outstanding semaphore wait or signal operation on that semaphore by+--     more than+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+--+-- -   #VUID-VkSubmitInfo2-flags-03886# If @flags@ includes+--     'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT', all+--     elements of @pCommandBuffers@ /must/ be protected command buffers+--+-- -   #VUID-VkSubmitInfo2-flags-03887# If @flags@ does not include+--     'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT', each+--     element of @pCommandBuffers@ /must/ not be a protected command+--     buffer+--+-- -   #VUID-VkSubmitInfo2KHR-commandBuffer-06192# If any @commandBuffer@+--     member of an element of @pCommandBufferInfos@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>,+--     they /must/ be suspended by a render pass instance earlier in+--     submission order within @pCommandBufferInfos@+--+-- -   #VUID-VkSubmitInfo2KHR-commandBuffer-06010# If any @commandBuffer@+--     member of an element of @pCommandBufferInfos@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     they /must/ be resumed by a render pass instance later in submission+--     order within @pCommandBufferInfos@+--+-- -   #VUID-VkSubmitInfo2KHR-commandBuffer-06011# If any @commandBuffer@+--     member of an element of @pCommandBufferInfos@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     there /must/ be no action or synchronization commands between that+--     render pass instance and the render pass instance that resumes it+--+-- -   #VUID-VkSubmitInfo2KHR-commandBuffer-06012# If any @commandBuffer@+--     member of an element of @pCommandBufferInfos@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     there /must/ be no render pass instances between that render pass+--     instance and the render pass instance that resumes it+--+-- -   #VUID-VkSubmitInfo2KHR-variableSampleLocations-06013# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+--     limit is not supported, and any @commandBuffer@ member of an element+--     of @pCommandBufferInfos@ contains any+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     where a graphics pipeline has been bound, any pipelines bound in the+--     render pass instance that resumes it, or any subsequent render pass+--     instances that resume from that one and so on, /must/ use the same+--     sample locations+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkSubmitInfo2-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2'+--+-- -   #VUID-VkSubmitInfo2-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_KHR_performance_query.PerformanceQuerySubmitInfoKHR',+--     'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',+--     or+--     'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV'+--+-- -   #VUID-VkSubmitInfo2-sType-unique# The @sType@ value of each struct+--     in the @pNext@ chain /must/ be unique+--+-- -   #VUID-VkSubmitInfo2-flags-parameter# @flags@ /must/ be a valid+--     combination of 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlagBits'+--     values+--+-- -   #VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter# If+--     @waitSemaphoreInfoCount@ is not @0@, @pWaitSemaphoreInfos@ /must/ be+--     a valid pointer to an array of @waitSemaphoreInfoCount@ valid+--     'SemaphoreSubmitInfo' structures+--+-- -   #VUID-VkSubmitInfo2-pCommandBufferInfos-parameter# If+--     @commandBufferInfoCount@ is not @0@, @pCommandBufferInfos@ /must/ be+--     a valid pointer to an array of @commandBufferInfoCount@ valid+--     'CommandBufferSubmitInfo' structures+--+-- -   #VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter# If+--     @signalSemaphoreInfoCount@ is not @0@, @pSignalSemaphoreInfos@+--     /must/ be a valid pointer to an array of @signalSemaphoreInfoCount@+--     valid 'SemaphoreSubmitInfo' structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CommandBufferSubmitInfo', 'SemaphoreSubmitInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlags', 'queueSubmit2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR'+data SubmitInfo2 (es :: [Type]) = SubmitInfo2+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @flags@ is a bitmask of+    -- 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlagBits'.+    flags :: SubmitFlags+  , -- | @pWaitSemaphoreInfos@ is a pointer to an array of 'SemaphoreSubmitInfo'+    -- structures defining+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operations>.+    waitSemaphoreInfos :: Vector SemaphoreSubmitInfo+  , -- | @pCommandBufferInfos@ is a pointer to an array of+    -- 'CommandBufferSubmitInfo' structures describing command buffers to+    -- execute in the batch.+    commandBufferInfos :: Vector CommandBufferSubmitInfo+  , -- | @pSignalSemaphoreInfos@ is a pointer to an array of+    -- 'SemaphoreSubmitInfo' describing+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>.+    signalSemaphoreInfos :: Vector SemaphoreSubmitInfo+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SubmitInfo2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (SubmitInfo2 es)++instance Extensible SubmitInfo2 where+  extensibleTypeName = "SubmitInfo2"+  setNext SubmitInfo2{..} next' = SubmitInfo2{next = next', ..}+  getNext SubmitInfo2{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo2 e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f+    | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoKHR = Just f+    | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f+    | otherwise = Nothing++instance (Extendss SubmitInfo2 es, PokeChain es) => ToCStruct (SubmitInfo2 es) where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SubmitInfo2{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr SubmitFlags)) (flags)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (waitSemaphoreInfos)) :: Word32))+    pPWaitSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (waitSemaphoreInfos)) * 48)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (waitSemaphoreInfos)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPWaitSemaphoreInfos')+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))+    pPCommandBufferInfos' <- ContT $ allocaBytes @CommandBufferSubmitInfo ((Data.Vector.length (commandBufferInfos)) * 32)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfo) (e)) (commandBufferInfos)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo))) (pPCommandBufferInfos')+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))+    pPSignalSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (signalSemaphoreInfos)) * 48)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (signalSemaphoreInfos)+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPSignalSemaphoreInfos')+    lift $ f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ f++instance (Extendss SubmitInfo2 es, PeekChain es) => FromCStruct (SubmitInfo2 es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    flags <- peek @SubmitFlags ((p `plusPtr` 16 :: Ptr SubmitFlags))+    waitSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))+    pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))+    commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfo) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo)))+    pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfo ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfo)))+    signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfo)))+    pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))+    pure $ SubmitInfo2+             next flags pWaitSemaphoreInfos' pCommandBufferInfos' pSignalSemaphoreInfos'++instance es ~ '[] => Zero (SubmitInfo2 es) where+  zero = SubmitInfo2+           ()+           zero+           mempty+           mempty+           mempty+++-- | VkPhysicalDeviceSynchronization2Features - Structure describing whether+-- the implementation supports v2 synchronization commands+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceSynchronization2Features' 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. 'PhysicalDeviceSynchronization2Features' /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_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSynchronization2Features = PhysicalDeviceSynchronization2Features+  { -- | #extension-features-synchronization2# @synchronization2@ indicates+    -- whether the implementation supports the new set of synchronization+    -- commands introduced in @VK_KHR_synchronization2@.+    synchronization2 :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSynchronization2Features)+#endif+deriving instance Show PhysicalDeviceSynchronization2Features++instance ToCStruct PhysicalDeviceSynchronization2Features where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceSynchronization2Features{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (synchronization2))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceSynchronization2Features where+  peekCStruct p = do+    synchronization2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceSynchronization2Features+             (bool32ToBool synchronization2)++instance Storable PhysicalDeviceSynchronization2Features where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSynchronization2Features where+  zero = PhysicalDeviceSynchronization2Features+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot view
@@ -0,0 +1,84 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_synchronization2"+module Vulkan.Core13.Promoted_From_VK_KHR_synchronization2  ( BufferMemoryBarrier2+                                                            , CommandBufferSubmitInfo+                                                            , DependencyInfo+                                                            , ImageMemoryBarrier2+                                                            , MemoryBarrier2+                                                            , PhysicalDeviceSynchronization2Features+                                                            , SemaphoreSubmitInfo+                                                            , SubmitInfo2+                                                            ) 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 BufferMemoryBarrier2++instance ToCStruct BufferMemoryBarrier2+instance Show BufferMemoryBarrier2++instance FromCStruct BufferMemoryBarrier2+++data CommandBufferSubmitInfo++instance ToCStruct CommandBufferSubmitInfo+instance Show CommandBufferSubmitInfo++instance FromCStruct CommandBufferSubmitInfo+++data DependencyInfo++instance ToCStruct DependencyInfo+instance Show DependencyInfo++instance FromCStruct DependencyInfo+++type role ImageMemoryBarrier2 nominal+data ImageMemoryBarrier2 (es :: [Type])++instance (Extendss ImageMemoryBarrier2 es, PokeChain es) => ToCStruct (ImageMemoryBarrier2 es)+instance Show (Chain es) => Show (ImageMemoryBarrier2 es)++instance (Extendss ImageMemoryBarrier2 es, PeekChain es) => FromCStruct (ImageMemoryBarrier2 es)+++data MemoryBarrier2++instance ToCStruct MemoryBarrier2+instance Show MemoryBarrier2++instance FromCStruct MemoryBarrier2+++data PhysicalDeviceSynchronization2Features++instance ToCStruct PhysicalDeviceSynchronization2Features+instance Show PhysicalDeviceSynchronization2Features++instance FromCStruct PhysicalDeviceSynchronization2Features+++data SemaphoreSubmitInfo++instance ToCStruct SemaphoreSubmitInfo+instance Show SemaphoreSubmitInfo++instance FromCStruct SemaphoreSubmitInfo+++type role SubmitInfo2 nominal+data SubmitInfo2 (es :: [Type])++instance (Extendss SubmitInfo2 es, PokeChain es) => ToCStruct (SubmitInfo2 es)+instance Show (Chain es) => Show (SubmitInfo2 es)++instance (Extendss SubmitInfo2 es, PeekChain es) => FromCStruct (SubmitInfo2 es)+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -0,0 +1,100 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_zero_initialize_workgroup_memory"+module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory  ( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(..)+                                                                            , StructureType(..)+                                                                            ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - Structure+-- describing support for zero initialization of workgroup memory by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' 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. 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' /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_KHR_zero_initialize_workgroup_memory VK_KHR_zero_initialize_workgroup_memory>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+  { -- | #extension-features-shaderZeroInitializeWorkgroupMemory#+    -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the+    -- implementation supports initializing a variable in Workgroup storage+    -- class.+    shaderZeroInitializeWorkgroupMemory :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)+#endif+deriving instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+  peekCStruct p = do+    shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+             (bool32ToBool shaderZeroInitializeWorkgroupMemory)++instance Storable PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+  zero = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+           zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_zero_initialize_workgroup_memory"+module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory  (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+
src/Vulkan/Dynamic.hs view
@@ -48,7 +48,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindBufferMemoryInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImageMemoryInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR)+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_FUCHSIA_buffer_collection (BufferCollectionCreateInfoFUCHSIA)@@ -87,11 +87,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureModeKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferToImageInfo2) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.Handles (CuFunctionNVX)@@ -116,7 +116,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectTagInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (DeferredOperationKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (DependencyInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo) import {-# SOURCE #-} Vulkan.Core10.Handles (DescriptorPool) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags)@@ -128,12 +128,12 @@ import {-# SOURCE #-} Vulkan.Core11.Handles (DescriptorUpdateTemplate) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (DeviceAddress)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceBufferMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements) import {-# SOURCE #-} Vulkan.Core10.Device (DeviceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DeviceEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentModeFlagsKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceImageMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) import {-# SOURCE #-} Vulkan.Core10.Handles (DeviceMemory) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2)@@ -272,7 +272,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceSparseImageFormatInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_tooling_info (PhysicalDeviceToolPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties) import {-# SOURCE #-} Vulkan.Core10.Handles (PhysicalDevice_T) import {-# SOURCE #-} Vulkan.Core10.Handles (Pipeline) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)@@ -287,12 +287,12 @@ import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR)+import {-# SOURCE #-} Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (PresentInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (PresentModeKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PrivateDataSlotCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.Handles (PrivateDataSlotEXT)+import {-# SOURCE #-} Vulkan.Core13.Handles (PrivateDataSlot)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags) import {-# SOURCE #-} Vulkan.Core10.Handles (QueryPool) import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)@@ -312,8 +312,8 @@ import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (RenderPassCreateInfo2)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2) import {-# SOURCE #-} Vulkan.Core10.Enums.Result (Result) import {-# SOURCE #-} Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)@@ -347,7 +347,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_stream_descriptor_surface (StreamDescriptorSurfaceCreateInfoGGP) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (StridedDeviceAddressRegionKHR) import {-# SOURCE #-} Vulkan.Core10.Queue (SubmitInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SubmitInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.SubpassContents (SubpassContents) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo)@@ -464,7 +464,7 @@   , pVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPerformanceQueryCreateInfo" ::: Ptr QueryPoolPerformanceCreateInfoKHR) -> ("pNumPasses" ::: Ptr Word32) -> IO ())   , pVkCreateHeadlessSurfaceEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr HeadlessSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)   , pVkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: FunPtr (Ptr PhysicalDevice_T -> ("pCombinationCount" ::: Ptr Word32) -> ("pCombinations" ::: Ptr FramebufferMixedSamplesCombinationNV) -> IO Result)-  , pVkGetPhysicalDeviceToolPropertiesEXT :: FunPtr (Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolPropertiesEXT) -> IO Result)+  , pVkGetPhysicalDeviceToolProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolProperties) -> IO Result)   , pVkGetPhysicalDeviceFragmentShadingRatesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pFragmentShadingRateCount" ::: Ptr Word32) -> ("pFragmentShadingRates" ::: Ptr PhysicalDeviceFragmentShadingRateKHR) -> IO Result)   , pVkAcquireDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result)   , pVkGetDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result)@@ -586,7 +586,7 @@   vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"#)   vkCreateHeadlessSurfaceEXT <- getInstanceProcAddr' handle (Ptr "vkCreateHeadlessSurfaceEXT"#)   vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"#)-  vkGetPhysicalDeviceToolPropertiesEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#)+  vkGetPhysicalDeviceToolProperties <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#), (Ptr "vkGetPhysicalDeviceToolProperties"#)]   vkGetPhysicalDeviceFragmentShadingRatesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceFragmentShadingRatesKHR"#)   vkAcquireDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireDrmDisplayEXT"#)   vkGetDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetDrmDisplayEXT"#)@@ -674,7 +674,7 @@     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPerformanceQueryCreateInfo" ::: Ptr QueryPoolPerformanceCreateInfoKHR) -> ("pNumPasses" ::: Ptr Word32) -> IO ()) vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr HeadlessSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateHeadlessSurfaceEXT)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pCombinationCount" ::: Ptr Word32) -> ("pCombinations" ::: Ptr FramebufferMixedSamplesCombinationNV) -> IO Result) vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)-    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolPropertiesEXT) -> IO Result) vkGetPhysicalDeviceToolPropertiesEXT)+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolProperties) -> IO Result) vkGetPhysicalDeviceToolProperties)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pFragmentShadingRateCount" ::: Ptr Word32) -> ("pFragmentShadingRates" ::: Ptr PhysicalDeviceFragmentShadingRateKHR) -> IO Result) vkGetPhysicalDeviceFragmentShadingRatesKHR)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result) vkAcquireDrmDisplayEXT)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result) vkGetDrmDisplayEXT)@@ -872,9 +872,9 @@   , pVkGetBufferMemoryRequirements2 :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr BufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())   , pVkGetImageMemoryRequirements2 :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr (SomeStruct ImageMemoryRequirementsInfo2)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())   , pVkGetImageSparseMemoryRequirements2 :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ())-  , pVkGetDeviceBufferMemoryRequirementsKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())-  , pVkGetDeviceImageMemoryRequirementsKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())-  , pVkGetDeviceImageSparseMemoryRequirementsKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ())+  , pVkGetDeviceBufferMemoryRequirements :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())+  , pVkGetDeviceImageMemoryRequirements :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())+  , pVkGetDeviceImageSparseMemoryRequirements :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ())   , pVkCreateSamplerYcbcrConversion :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct SamplerYcbcrConversionCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr SamplerYcbcrConversion) -> IO Result)   , pVkDestroySamplerYcbcrConversion :: FunPtr (Ptr Device_T -> SamplerYcbcrConversion -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkGetDeviceQueue2 :: FunPtr (Ptr Device_T -> ("pQueueInfo" ::: Ptr DeviceQueueInfo2) -> ("pQueue" ::: Ptr (Ptr Queue_T)) -> IO ())@@ -985,45 +985,45 @@   , pVkGetDeferredOperationMaxConcurrencyKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Word32)   , pVkGetDeferredOperationResultKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)   , pVkDeferredOperationJoinKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)-  , pVkCmdSetCullModeEXT :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())-  , pVkCmdSetFrontFaceEXT :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())-  , pVkCmdSetPrimitiveTopologyEXT :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())-  , pVkCmdSetViewportWithCountEXT :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())-  , pVkCmdSetScissorWithCountEXT :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())-  , pVkCmdBindVertexBuffers2EXT :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ())-  , pVkCmdSetDepthTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ())-  , pVkCmdSetDepthWriteEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ())-  , pVkCmdSetDepthCompareOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ())-  , pVkCmdSetDepthBoundsTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ())-  , pVkCmdSetStencilTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ())-  , pVkCmdSetStencilOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ())+  , pVkCmdSetCullMode :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())+  , pVkCmdSetFrontFace :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())+  , pVkCmdSetPrimitiveTopology :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())+  , pVkCmdSetViewportWithCount :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())+  , pVkCmdSetScissorWithCount :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())+  , pVkCmdBindVertexBuffers2 :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ())+  , pVkCmdSetDepthTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthWriteEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthCompareOp :: FunPtr (Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ())+  , pVkCmdSetDepthBoundsTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ())+  , pVkCmdSetStencilTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ())+  , pVkCmdSetStencilOp :: FunPtr (Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ())   , pVkCmdSetPatchControlPointsEXT :: FunPtr (Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ())-  , pVkCmdSetRasterizerDiscardEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ())-  , pVkCmdSetDepthBiasEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ())+  , pVkCmdSetRasterizerDiscardEnable :: FunPtr (Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthBiasEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ())   , pVkCmdSetLogicOpEXT :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ())-  , pVkCmdSetPrimitiveRestartEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ())-  , pVkCreatePrivateDataSlotEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result)-  , pVkDestroyPrivateDataSlotEXT :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())-  , pVkSetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result)-  , pVkGetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("pData" ::: Ptr Word64) -> IO ())-  , pVkCmdCopyBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())-  , pVkCmdCopyImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())-  , pVkCmdBlitImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())-  , pVkCmdCopyBufferToImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ())-  , pVkCmdCopyImageToBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ())-  , pVkCmdResolveImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())+  , pVkCmdSetPrimitiveRestartEnable :: FunPtr (Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ())+  , pVkCreatePrivateDataSlot :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlot) -> IO Result)+  , pVkDestroyPrivateDataSlot :: FunPtr (Ptr Device_T -> PrivateDataSlot -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkSetPrivateData :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("data" ::: Word64) -> IO Result)+  , pVkGetPrivateData :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ())+  , pVkCmdCopyBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ())+  , pVkCmdCopyImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ())+  , pVkCmdBlitImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ())+  , pVkCmdCopyBufferToImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ())+  , pVkCmdCopyImageToBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ())+  , pVkCmdResolveImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ())   , pVkCmdSetFragmentShadingRateKHR :: FunPtr (Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ())   , pVkCmdSetFragmentShadingRateEnumNV :: FunPtr (Ptr CommandBuffer_T -> FragmentShadingRateNV -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ())   , pVkGetAccelerationStructureBuildSizesKHR :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> ("pBuildInfo" ::: Ptr AccelerationStructureBuildGeometryInfoKHR) -> ("pMaxPrimitiveCounts" ::: Ptr Word32) -> ("pSizeInfo" ::: Ptr AccelerationStructureBuildSizesInfoKHR) -> IO ())   , pVkCmdSetVertexInputEXT :: FunPtr (Ptr CommandBuffer_T -> ("vertexBindingDescriptionCount" ::: Word32) -> ("pVertexBindingDescriptions" ::: Ptr VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptionCount" ::: Word32) -> ("pVertexAttributeDescriptions" ::: Ptr VertexInputAttributeDescription2EXT) -> IO ())   , pVkCmdSetColorWriteEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("attachmentCount" ::: Word32) -> ("pColorWriteEnables" ::: Ptr Bool32) -> IO ())-  , pVkCmdSetEvent2KHR :: FunPtr (Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ())-  , pVkCmdResetEvent2KHR :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2KHR) -> IO ())-  , pVkCmdWaitEvents2KHR :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfoKHR) -> IO ())-  , pVkCmdPipelineBarrier2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ())-  , pVkQueueSubmit2KHR :: FunPtr (Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2KHR)) -> Fence -> IO Result)-  , pVkCmdWriteTimestamp2KHR :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ())-  , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ())+  , pVkCmdSetEvent2 :: FunPtr (Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ())+  , pVkCmdResetEvent2 :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2) -> IO ())+  , pVkCmdWaitEvents2 :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfo) -> IO ())+  , pVkCmdPipelineBarrier2 :: FunPtr (Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ())+  , pVkQueueSubmit2 :: FunPtr (Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2)) -> Fence -> IO Result)+  , pVkCmdWriteTimestamp2 :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ())+  , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ())   , pVkGetQueueCheckpointData2NV :: FunPtr (Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ())   , pVkCreateCuModuleNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result)   , pVkCreateCuFunctionNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result)@@ -1037,8 +1037,8 @@   , pVkSetBufferCollectionImageConstraintsFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pImageConstraintsInfo" ::: Ptr ImageConstraintsInfoFUCHSIA) -> IO Result)   , pVkDestroyBufferCollectionFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkGetBufferCollectionPropertiesFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pProperties" ::: Ptr BufferCollectionPropertiesFUCHSIA) -> IO Result)-  , pVkCmdBeginRenderingKHR :: FunPtr (Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfoKHR)) -> IO ())-  , pVkCmdEndRenderingKHR :: FunPtr (Ptr CommandBuffer_T -> IO ())+  , pVkCmdBeginRendering :: FunPtr (Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> IO ())+  , pVkCmdEndRendering :: FunPtr (Ptr CommandBuffer_T -> IO ())   }  deriving instance Eq DeviceCmds@@ -1301,9 +1301,9 @@   vkGetBufferMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetBufferMemoryRequirements2KHR"#), (Ptr "vkGetBufferMemoryRequirements2"#)]   vkGetImageMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetImageMemoryRequirements2KHR"#), (Ptr "vkGetImageMemoryRequirements2"#)]   vkGetImageSparseMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetImageSparseMemoryRequirements2KHR"#), (Ptr "vkGetImageSparseMemoryRequirements2"#)]-  vkGetDeviceBufferMemoryRequirementsKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceBufferMemoryRequirementsKHR"#)-  vkGetDeviceImageMemoryRequirementsKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceImageMemoryRequirementsKHR"#)-  vkGetDeviceImageSparseMemoryRequirementsKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceImageSparseMemoryRequirementsKHR"#)+  vkGetDeviceBufferMemoryRequirements <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceBufferMemoryRequirementsKHR"#), (Ptr "vkGetDeviceBufferMemoryRequirements"#)]+  vkGetDeviceImageMemoryRequirements <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceImageMemoryRequirementsKHR"#), (Ptr "vkGetDeviceImageMemoryRequirements"#)]+  vkGetDeviceImageSparseMemoryRequirements <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceImageSparseMemoryRequirementsKHR"#), (Ptr "vkGetDeviceImageSparseMemoryRequirements"#)]   vkCreateSamplerYcbcrConversion <- getFirstDeviceProcAddr [(Ptr "vkCreateSamplerYcbcrConversionKHR"#), (Ptr "vkCreateSamplerYcbcrConversion"#)]   vkDestroySamplerYcbcrConversion <- getFirstDeviceProcAddr [(Ptr "vkDestroySamplerYcbcrConversionKHR"#), (Ptr "vkDestroySamplerYcbcrConversion"#)]   vkGetDeviceQueue2 <- getDeviceProcAddr' handle (Ptr "vkGetDeviceQueue2"#)@@ -1414,44 +1414,44 @@   vkGetDeferredOperationMaxConcurrencyKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationMaxConcurrencyKHR"#)   vkGetDeferredOperationResultKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationResultKHR"#)   vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#)-  vkCmdSetCullModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetCullModeEXT"#)-  vkCmdSetFrontFaceEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetFrontFaceEXT"#)-  vkCmdSetPrimitiveTopologyEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPrimitiveTopologyEXT"#)-  vkCmdSetViewportWithCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewportWithCountEXT"#)-  vkCmdSetScissorWithCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetScissorWithCountEXT"#)-  vkCmdBindVertexBuffers2EXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindVertexBuffers2EXT"#)-  vkCmdSetDepthTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthTestEnableEXT"#)-  vkCmdSetDepthWriteEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthWriteEnableEXT"#)-  vkCmdSetDepthCompareOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthCompareOpEXT"#)-  vkCmdSetDepthBoundsTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBoundsTestEnableEXT"#)-  vkCmdSetStencilTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilTestEnableEXT"#)-  vkCmdSetStencilOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilOpEXT"#)+  vkCmdSetCullMode <- getFirstDeviceProcAddr [(Ptr "vkCmdSetCullModeEXT"#), (Ptr "vkCmdSetCullMode"#)]+  vkCmdSetFrontFace <- getFirstDeviceProcAddr [(Ptr "vkCmdSetFrontFaceEXT"#), (Ptr "vkCmdSetFrontFace"#)]+  vkCmdSetPrimitiveTopology <- getFirstDeviceProcAddr [(Ptr "vkCmdSetPrimitiveTopologyEXT"#), (Ptr "vkCmdSetPrimitiveTopology"#)]+  vkCmdSetViewportWithCount <- getFirstDeviceProcAddr [(Ptr "vkCmdSetViewportWithCountEXT"#), (Ptr "vkCmdSetViewportWithCount"#)]+  vkCmdSetScissorWithCount <- getFirstDeviceProcAddr [(Ptr "vkCmdSetScissorWithCountEXT"#), (Ptr "vkCmdSetScissorWithCount"#)]+  vkCmdBindVertexBuffers2 <- getFirstDeviceProcAddr [(Ptr "vkCmdBindVertexBuffers2EXT"#), (Ptr "vkCmdBindVertexBuffers2"#)]+  vkCmdSetDepthTestEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthTestEnableEXT"#), (Ptr "vkCmdSetDepthTestEnable"#)]+  vkCmdSetDepthWriteEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthWriteEnableEXT"#), (Ptr "vkCmdSetDepthWriteEnable"#)]+  vkCmdSetDepthCompareOp <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthCompareOpEXT"#), (Ptr "vkCmdSetDepthCompareOp"#)]+  vkCmdSetDepthBoundsTestEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthBoundsTestEnableEXT"#), (Ptr "vkCmdSetDepthBoundsTestEnable"#)]+  vkCmdSetStencilTestEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetStencilTestEnableEXT"#), (Ptr "vkCmdSetStencilTestEnable"#)]+  vkCmdSetStencilOp <- getFirstDeviceProcAddr [(Ptr "vkCmdSetStencilOpEXT"#), (Ptr "vkCmdSetStencilOp"#)]   vkCmdSetPatchControlPointsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPatchControlPointsEXT"#)-  vkCmdSetRasterizerDiscardEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetRasterizerDiscardEnableEXT"#)-  vkCmdSetDepthBiasEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBiasEnableEXT"#)+  vkCmdSetRasterizerDiscardEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetRasterizerDiscardEnableEXT"#), (Ptr "vkCmdSetRasterizerDiscardEnable"#)]+  vkCmdSetDepthBiasEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthBiasEnableEXT"#), (Ptr "vkCmdSetDepthBiasEnable"#)]   vkCmdSetLogicOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLogicOpEXT"#)-  vkCmdSetPrimitiveRestartEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPrimitiveRestartEnableEXT"#)-  vkCreatePrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkCreatePrivateDataSlotEXT"#)-  vkDestroyPrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyPrivateDataSlotEXT"#)-  vkSetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkSetPrivateDataEXT"#)-  vkGetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetPrivateDataEXT"#)-  vkCmdCopyBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBuffer2KHR"#)-  vkCmdCopyImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImage2KHR"#)-  vkCmdBlitImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdBlitImage2KHR"#)-  vkCmdCopyBufferToImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBufferToImage2KHR"#)-  vkCmdCopyImageToBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImageToBuffer2KHR"#)-  vkCmdResolveImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResolveImage2KHR"#)+  vkCmdSetPrimitiveRestartEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetPrimitiveRestartEnableEXT"#), (Ptr "vkCmdSetPrimitiveRestartEnable"#)]+  vkCreatePrivateDataSlot <- getFirstDeviceProcAddr [(Ptr "vkCreatePrivateDataSlotEXT"#), (Ptr "vkCreatePrivateDataSlot"#)]+  vkDestroyPrivateDataSlot <- getFirstDeviceProcAddr [(Ptr "vkDestroyPrivateDataSlotEXT"#), (Ptr "vkDestroyPrivateDataSlot"#)]+  vkSetPrivateData <- getFirstDeviceProcAddr [(Ptr "vkSetPrivateDataEXT"#), (Ptr "vkSetPrivateData"#)]+  vkGetPrivateData <- getFirstDeviceProcAddr [(Ptr "vkGetPrivateDataEXT"#), (Ptr "vkGetPrivateData"#)]+  vkCmdCopyBuffer2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyBuffer2KHR"#), (Ptr "vkCmdCopyBuffer2"#)]+  vkCmdCopyImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyImage2KHR"#), (Ptr "vkCmdCopyImage2"#)]+  vkCmdBlitImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdBlitImage2KHR"#), (Ptr "vkCmdBlitImage2"#)]+  vkCmdCopyBufferToImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyBufferToImage2KHR"#), (Ptr "vkCmdCopyBufferToImage2"#)]+  vkCmdCopyImageToBuffer2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyImageToBuffer2KHR"#), (Ptr "vkCmdCopyImageToBuffer2"#)]+  vkCmdResolveImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdResolveImage2KHR"#), (Ptr "vkCmdResolveImage2"#)]   vkCmdSetFragmentShadingRateKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateKHR"#)   vkCmdSetFragmentShadingRateEnumNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateEnumNV"#)   vkGetAccelerationStructureBuildSizesKHR <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureBuildSizesKHR"#)   vkCmdSetVertexInputEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetVertexInputEXT"#)   vkCmdSetColorWriteEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorWriteEnableEXT"#)-  vkCmdSetEvent2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetEvent2KHR"#)-  vkCmdResetEvent2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResetEvent2KHR"#)-  vkCmdWaitEvents2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWaitEvents2KHR"#)-  vkCmdPipelineBarrier2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdPipelineBarrier2KHR"#)-  vkQueueSubmit2KHR <- getDeviceProcAddr' handle (Ptr "vkQueueSubmit2KHR"#)-  vkCmdWriteTimestamp2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWriteTimestamp2KHR"#)+  vkCmdSetEvent2 <- getFirstDeviceProcAddr [(Ptr "vkCmdSetEvent2KHR"#), (Ptr "vkCmdSetEvent2"#)]+  vkCmdResetEvent2 <- getFirstDeviceProcAddr [(Ptr "vkCmdResetEvent2KHR"#), (Ptr "vkCmdResetEvent2"#)]+  vkCmdWaitEvents2 <- getFirstDeviceProcAddr [(Ptr "vkCmdWaitEvents2KHR"#), (Ptr "vkCmdWaitEvents2"#)]+  vkCmdPipelineBarrier2 <- getFirstDeviceProcAddr [(Ptr "vkCmdPipelineBarrier2KHR"#), (Ptr "vkCmdPipelineBarrier2"#)]+  vkQueueSubmit2 <- getFirstDeviceProcAddr [(Ptr "vkQueueSubmit2KHR"#), (Ptr "vkQueueSubmit2"#)]+  vkCmdWriteTimestamp2 <- getFirstDeviceProcAddr [(Ptr "vkCmdWriteTimestamp2KHR"#), (Ptr "vkCmdWriteTimestamp2"#)]   vkCmdWriteBufferMarker2AMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarker2AMD"#)   vkGetQueueCheckpointData2NV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointData2NV"#)   vkCreateCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuModuleNVX"#)@@ -1466,8 +1466,8 @@   vkSetBufferCollectionImageConstraintsFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkSetBufferCollectionImageConstraintsFUCHSIA"#)   vkDestroyBufferCollectionFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkDestroyBufferCollectionFUCHSIA"#)   vkGetBufferCollectionPropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetBufferCollectionPropertiesFUCHSIA"#)-  vkCmdBeginRenderingKHR <- getDeviceProcAddr' handle (Ptr "vkCmdBeginRenderingKHR"#)-  vkCmdEndRenderingKHR <- getDeviceProcAddr' handle (Ptr "vkCmdEndRenderingKHR"#)+  vkCmdBeginRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdBeginRenderingKHR"#), (Ptr "vkCmdBeginRendering"#)]+  vkCmdEndRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdEndRenderingKHR"#), (Ptr "vkCmdEndRendering"#)]   pure $ DeviceCmds handle     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1660,9 +1660,9 @@     (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr BufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetBufferMemoryRequirements2)     (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr (SomeStruct ImageMemoryRequirementsInfo2)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetImageMemoryRequirements2)     (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) vkGetImageSparseMemoryRequirements2)-    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceBufferMemoryRequirementsKHR)-    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceImageMemoryRequirementsKHR)-    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) vkGetDeviceImageSparseMemoryRequirementsKHR)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceBufferMemoryRequirements)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceImageMemoryRequirements)+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) vkGetDeviceImageSparseMemoryRequirements)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct SamplerYcbcrConversionCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr SamplerYcbcrConversion) -> IO Result) vkCreateSamplerYcbcrConversion)     (castFunPtr @_ @(Ptr Device_T -> SamplerYcbcrConversion -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroySamplerYcbcrConversion)     (castFunPtr @_ @(Ptr Device_T -> ("pQueueInfo" ::: Ptr DeviceQueueInfo2) -> ("pQueue" ::: Ptr (Ptr Queue_T)) -> IO ()) vkGetDeviceQueue2)@@ -1773,45 +1773,45 @@     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Word32) vkGetDeferredOperationMaxConcurrencyKHR)     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkGetDeferredOperationResultKHR)     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkDeferredOperationJoinKHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullModeEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFaceEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopologyEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCountEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCountEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2EXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnableEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnableEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ()) vkCmdSetDepthCompareOpEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBoundsTestEnableEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ()) vkCmdSetStencilTestEnableEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) vkCmdSetStencilOpEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullMode)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFace)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopology)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCount)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCount)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnable)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnable)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ()) vkCmdSetDepthCompareOp)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBoundsTestEnable)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ()) vkCmdSetStencilTestEnable)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) vkCmdSetStencilOp)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ()) vkCmdSetPatchControlPointsEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ()) vkCmdSetRasterizerDiscardEnableEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBiasEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ()) vkCmdSetRasterizerDiscardEnable)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBiasEnable)     (castFunPtr @_ @(Ptr CommandBuffer_T -> LogicOp -> IO ()) vkCmdSetLogicOpEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ()) vkCmdSetPrimitiveRestartEnableEXT)-    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result) vkCreatePrivateDataSlotEXT)-    (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlotEXT)-    (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result) vkSetPrivateDataEXT)-    (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateDataEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ()) vkCmdCopyBuffer2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()) vkCmdCopyImage2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()) vkCmdBlitImage2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ()) vkCmdCopyBufferToImage2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ()) vkCmdCopyImageToBuffer2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()) vkCmdResolveImage2KHR)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ()) vkCmdSetPrimitiveRestartEnable)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlot) -> IO Result) vkCreatePrivateDataSlot)+    (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlot -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlot)+    (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("data" ::: Word64) -> IO Result) vkSetPrivateData)+    (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateData)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ()) vkCmdCopyBuffer2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ()) vkCmdCopyImage2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ()) vkCmdBlitImage2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ()) vkCmdCopyBufferToImage2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ()) vkCmdCopyImageToBuffer2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ()) vkCmdResolveImage2)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateKHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> FragmentShadingRateNV -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateEnumNV)     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureBuildTypeKHR -> ("pBuildInfo" ::: Ptr AccelerationStructureBuildGeometryInfoKHR) -> ("pMaxPrimitiveCounts" ::: Ptr Word32) -> ("pSizeInfo" ::: Ptr AccelerationStructureBuildSizesInfoKHR) -> IO ()) vkGetAccelerationStructureBuildSizesKHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("vertexBindingDescriptionCount" ::: Word32) -> ("pVertexBindingDescriptions" ::: Ptr VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptionCount" ::: Word32) -> ("pVertexAttributeDescriptions" ::: Ptr VertexInputAttributeDescription2EXT) -> IO ()) vkCmdSetVertexInputEXT)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("attachmentCount" ::: Word32) -> ("pColorWriteEnables" ::: Ptr Bool32) -> IO ()) vkCmdSetColorWriteEnableEXT)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdSetEvent2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2KHR) -> IO ()) vkCmdResetEvent2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdWaitEvents2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdPipelineBarrier2KHR)-    (castFunPtr @_ @(Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2KHR)) -> Fence -> IO Result) vkQueueSubmit2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2KHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ()) vkCmdSetEvent2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2) -> IO ()) vkCmdResetEvent2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfo) -> IO ()) vkCmdWaitEvents2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ()) vkCmdPipelineBarrier2)+    (castFunPtr @_ @(Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2)) -> Fence -> IO Result) vkQueueSubmit2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD)     (castFunPtr @_ @(Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) vkGetQueueCheckpointData2NV)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) vkCreateCuModuleNVX)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result) vkCreateCuFunctionNVX)@@ -1825,6 +1825,6 @@     (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pImageConstraintsInfo" ::: Ptr ImageConstraintsInfoFUCHSIA) -> IO Result) vkSetBufferCollectionImageConstraintsFUCHSIA)     (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyBufferCollectionFUCHSIA)     (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pProperties" ::: Ptr BufferCollectionPropertiesFUCHSIA) -> IO Result) vkGetBufferCollectionPropertiesFUCHSIA)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfoKHR)) -> IO ()) vkCmdBeginRenderingKHR)-    (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRenderingKHR)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> IO ()) vkCmdBeginRendering)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRendering) 
src/Vulkan/Exception.hs view
@@ -35,7 +35,6 @@   ERROR_FORMAT_NOT_SUPPORTED -> "A requested format is not supported on this device"   ERROR_FRAGMENTED_POOL -> "A pool allocation has failed due to fragmentation of the pool's memory"   ERROR_UNKNOWN -> "An unknown error has occurred; either the application has provided invalid input, or an implementation failure has occurred"-  PIPELINE_COMPILE_REQUIRED_EXT -> "A requested pipeline creation would have required compilation, but the application requested compilation to not be performed"   OPERATION_NOT_DEFERRED_KHR -> "A deferred operation was requested and no operations were deferred"   OPERATION_DEFERRED_KHR -> "A deferred operation was requested and at least some of the work was deferred"   THREAD_DONE_KHR -> "A deferred operation is not complete but there is no work remaining to assign to additional threads"@@ -47,6 +46,7 @@   SUBOPTIMAL_KHR -> "A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully"   ERROR_NATIVE_WINDOW_IN_USE_KHR -> "The requested window is already in use by Vulkan or another API in a manner which prevents it from being used again"   ERROR_SURFACE_LOST_KHR -> "A surface is no longer available"+  PIPELINE_COMPILE_REQUIRED -> "A requested pipeline creation would have required compilation, but the application requested compilation to not be performed"   ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS -> "A buffer creation or memory allocation failed because the requested address is not available"   ERROR_FRAGMENTATION -> "A descriptor pool creation has failed due to fragmentation"   ERROR_INVALID_EXTERNAL_HANDLE -> "An external handle is not a valid handle of the specified type"
src/Vulkan/Extensions.hs view
@@ -166,6 +166,7 @@                           , module Vulkan.Extensions.VK_KHR_get_memory_requirements2                           , module Vulkan.Extensions.VK_KHR_get_physical_device_properties2                           , module Vulkan.Extensions.VK_KHR_get_surface_capabilities2+                          , module Vulkan.Extensions.VK_KHR_global_priority                           , module Vulkan.Extensions.VK_KHR_image_format_list                           , module Vulkan.Extensions.VK_KHR_imageless_framebuffer                           , module Vulkan.Extensions.VK_KHR_incremental_present@@ -433,6 +434,7 @@ import Vulkan.Extensions.VK_KHR_get_memory_requirements2 import Vulkan.Extensions.VK_KHR_get_physical_device_properties2 import Vulkan.Extensions.VK_KHR_get_surface_capabilities2+import Vulkan.Extensions.VK_KHR_global_priority import Vulkan.Extensions.VK_KHR_image_format_list import Vulkan.Extensions.VK_KHR_imageless_framebuffer import Vulkan.Extensions.VK_KHR_incremental_present
src/Vulkan/Extensions/Handles.hs view
@@ -7,7 +7,6 @@                                   , PerformanceConfigurationINTEL(..)                                   , BufferCollectionFUCHSIA(..)                                   , DeferredOperationKHR(..)-                                  , PrivateDataSlotEXT(..)                                   , CuModuleNVX(..)                                   , CuFunctionNVX(..)                                   , DisplayKHR(..)@@ -42,6 +41,7 @@                                   , PipelineCache(..)                                   , DescriptorUpdateTemplate(..)                                   , SamplerYcbcrConversion(..)+                                  , PrivateDataSlot(..)                                   ) where  import GHC.Show (showParen)@@ -63,7 +63,6 @@ import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DISPLAY_MODE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL))-import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SURFACE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SWAPCHAIN_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_VALIDATION_CACHE_EXT))@@ -86,6 +85,7 @@ import Vulkan.Core10.Handles (Pipeline(..)) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Handles (PipelineLayout(..))+import Vulkan.Core13.Handles (PrivateDataSlot(..)) import Vulkan.Core10.Handles (QueryPool(..)) import Vulkan.Core10.Handles (Queue(..)) import Vulkan.Core10.Handles (RenderPass(..))@@ -247,24 +247,6 @@   objectTypeAndHandle (DeferredOperationKHR h) = (OBJECT_TYPE_DEFERRED_OPERATION_KHR, h) instance Show DeferredOperationKHR where   showsPrec p (DeferredOperationKHR x) = showParen (p >= 11) (showString "DeferredOperationKHR 0x" . showHex x)----- | VkPrivateDataSlotEXT - Opaque handle to a private data slot object------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT'-newtype PrivateDataSlotEXT = PrivateDataSlotEXT Word64-  deriving newtype (Eq, Ord, Storable, Zero)-  deriving anyclass (IsHandle)-instance HasObjectType PrivateDataSlotEXT where-  objectTypeAndHandle (PrivateDataSlotEXT h) = (OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, h)-instance Show PrivateDataSlotEXT where-  showsPrec p (PrivateDataSlotEXT x) = showParen (p >= 11) (showString "PrivateDataSlotEXT 0x" . showHex x)   -- | VkCuModuleNVX - Stub description of VkCuModuleNVX
src/Vulkan/Extensions/Handles.hs-boot view
@@ -12,7 +12,6 @@                                   , DisplayModeKHR                                   , IndirectCommandsLayoutNV                                   , PerformanceConfigurationINTEL-                                  , PrivateDataSlotEXT                                   , SurfaceKHR                                   , SwapchainKHR                                   , ValidationCacheEXT@@ -54,9 +53,6 @@   data PerformanceConfigurationINTEL---data PrivateDataSlotEXT   data SurfaceKHR
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_buffer_marker Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -207,7 +207,7 @@ -- -   #VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> --     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'+--     'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_NONE_KHR' -- -- -   #VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798# @dstOffset@ /must/ --     be less than or equal to the size of @dstBuffer@ minus @4@
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs view
@@ -89,7 +89,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot view
@@ -89,7 +89,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_draw_indirect_count Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_draw_indirect_count Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_gcn_shader.hs view
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_gcn_shader Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gcn_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs view
@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_gpu_shader_half_float Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gpu_shader_half_float Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_gpu_shader_int16 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gpu_shader_int16 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs view
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot view
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs view
@@ -74,7 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs view
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_negative_viewport_height Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_negative_viewport_height Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs view
@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot view
@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_rasterization_order.hs view
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -274,11 +274,11 @@  -- | 'RASTERIZATION_ORDER_STRICT_AMD' specifies that operations for each -- primitive in a subpass /must/ occur in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>. pattern RASTERIZATION_ORDER_STRICT_AMD  = RasterizationOrderAMD 0 -- | 'RASTERIZATION_ORDER_RELAXED_AMD' specifies that operations for each -- primitive in a subpass /may/ not occur in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>. pattern RASTERIZATION_ORDER_RELAXED_AMD = RasterizationOrderAMD 1 {-# complete RASTERIZATION_ORDER_STRICT_AMD,              RASTERIZATION_ORDER_RELAXED_AMD :: RasterizationOrderAMD #-}
src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot view
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_ballot.hs view
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_ballot Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_ballot Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs view
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot view
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs view
@@ -91,7 +91,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot view
@@ -91,7 +91,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_explicit_vertex_parameter Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_explicit_vertex_parameter Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs view
@@ -76,7 +76,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentMaskAMD FragmentMaskAMD>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentMaskAMD FragmentMaskAMD> -- -- == Examples --@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_fragment_mask Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_fragment_mask Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs view
@@ -76,7 +76,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_image_load_store_lod Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_image_load_store_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot view
@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_trinary_minmax Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_trinary_minmax Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs view
@@ -91,7 +91,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD> -- -- == Examples --@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot view
@@ -91,7 +91,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD> -- -- == Examples --@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -289,9 +289,6 @@                                                                              , ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME                                                                              , pattern ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME                                                                              , AHardwareBuffer-                                                                             , FormatFeatureFlagBits2KHR(..)-                                                                             , FormatFeatureFlags2KHR-                                                                             , Flags64                                                                              ) where  import Vulkan.Internal.Utils (traceAroundEvent)@@ -349,7 +346,7 @@ import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -369,9 +366,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -521,7 +515,7 @@ --     @buffer@ is not @NULL@, it /must/ be a valid Android hardware buffer --     object with @AHardwareBuffer_Desc@::@usage@ compatible with Vulkan --     as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers> -- -- == Valid Usage (Implicit) --@@ -584,7 +578,7 @@ -- -- The @androidHardwareBufferUsage@ field /must/ include Android hardware -- buffer usage flags listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence> -- table when the corresponding Vulkan image usage or image creation flags -- are included in the @usage@ or @flags@ fields of -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'.@@ -821,7 +815,7 @@ -- = Description -- -- If the Android hardware buffer has one of the formats listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-formats Format Equivalence table>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-formats Format Equivalence table>, -- then @format@ /must/ have the equivalent Vulkan format listed in the -- table. Otherwise, @format@ /may/ be -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', indicating the Android@@ -842,7 +836,7 @@ -- -- The @formatFeatures@ member only indicates the features available when -- using an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external-format image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external-format image> -- created from the Android hardware buffer. Images from Android hardware -- buffers with a format other than -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' are subject to the format@@ -879,7 +873,7 @@ -- with that format. If @format@ is -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', all members of -- @samplerYcbcrConversionComponents@ /must/ be the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>. -- -- Implementations /may/ not always be able to determine the color model, -- numerical range, or chroma offsets of the image contents, so the values@@ -1088,7 +1082,7 @@ -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation', -- 'Vulkan.Core10.ImageView.ComponentMapping', -- 'Vulkan.Core10.Enums.Format.Format',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2', -- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SamplerYcbcrModelConversion', -- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SamplerYcbcrRange', -- 'Vulkan.Core10.Enums.StructureType.StructureType'@@ -1102,7 +1096,7 @@     externalFormat :: Word64   , -- | @formatFeatures@ describes the capabilities of this external format when     -- used with an image bound to memory imported from @buffer@.-    formatFeatures :: FormatFeatureFlags2KHR+    formatFeatures :: FormatFeatureFlags2   , -- | @samplerYcbcrConversionComponents@ is the component swizzle that     -- /should/ be used in     -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.@@ -1133,7 +1127,7 @@     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr Format)) (format)     poke ((p `plusPtr` 24 :: Ptr Word64)) (externalFormat)-    poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR)) (formatFeatures)+    poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) (formatFeatures)     poke ((p `plusPtr` 40 :: Ptr ComponentMapping)) (samplerYcbcrConversionComponents)     poke ((p `plusPtr` 56 :: Ptr SamplerYcbcrModelConversion)) (suggestedYcbcrModel)     poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrRange)) (suggestedYcbcrRange)@@ -1147,7 +1141,7 @@     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     poke ((p `plusPtr` 16 :: Ptr Format)) (zero)     poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)-    poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR)) (zero)+    poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) (zero)     poke ((p `plusPtr` 40 :: Ptr ComponentMapping)) (zero)     poke ((p `plusPtr` 56 :: Ptr SamplerYcbcrModelConversion)) (zero)     poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrRange)) (zero)@@ -1159,7 +1153,7 @@   peekCStruct p = do     format <- peek @Format ((p `plusPtr` 16 :: Ptr Format))     externalFormat <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))-    formatFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR))+    formatFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2))     samplerYcbcrConversionComponents <- peekCStruct @ComponentMapping ((p `plusPtr` 40 :: Ptr ComponentMapping))     suggestedYcbcrModel <- peek @SamplerYcbcrModelConversion ((p `plusPtr` 56 :: Ptr SamplerYcbcrModelConversion))     suggestedYcbcrRange <- peek @SamplerYcbcrRange ((p `plusPtr` 60 :: Ptr SamplerYcbcrRange))
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs view
@@ -45,7 +45,7 @@ -- == Description -- -- Renderpasses, and specifically--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies> -- enable much of the same functionality as the framebuffer fetch and pixel -- local storage extensions did for OpenGL ES. But certain techniques such -- as programmable blending are awkward or impractical to implement with@@ -58,7 +58,7 @@ -- rasterization order, without explicit synchronization. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. -- -- == New Structures@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs-boot view
@@ -45,7 +45,7 @@ -- == Description -- -- Renderpasses, and specifically--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies> -- enable much of the same functionality as the framebuffer fetch and pixel -- local storage extensions did for OpenGL ES. But certain techniques such -- as programmable blending are awkward or impractical to implement with@@ -58,7 +58,7 @@ -- rasterization order, without explicit synchronization. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. -- -- == New Structures@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_4444_formats.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Joshua Ashton@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2020-07-28 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -44,10 +53,9 @@ -- -- == Description ----- This extension defines the--- 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and--- 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats--- which are defined in other current graphics APIs.+-- This extension defines the 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and+-- 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats which are defined in other+-- current graphics APIs. -- -- This extension may be useful for building translation layers for those -- APIs or for porting applications that use these formats without having@@ -73,14 +81,24 @@ -- -- -   Extending 'Vulkan.Core10.Enums.Format.Format': -----     -   'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT'+--     -   'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT'+--     -   'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- -   Revision 1, 2020-07-04 (Joshua Ashton)@@ -94,11 +112,13 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_4444_formats 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_4444_formats  ( PhysicalDevice4444FormatsFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_4444_formats  ( pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT+                                              , pattern FORMAT_A4B4G4R4_UNORM_PACK16_EXT+                                              , PhysicalDevice4444FormatsFeaturesEXT(..)                                               , EXT_4444_FORMATS_SPEC_VERSION                                               , pattern EXT_4444_FORMATS_SPEC_VERSION                                               , EXT_4444_FORMATS_EXTENSION_NAME@@ -126,7 +146,17 @@ import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.Format (Format(FORMAT_A4B4G4R4_UNORM_PACK16))+import Vulkan.Core10.Enums.Format (Format(FORMAT_A4R4G4B4_UNORM_PACK16)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT))+-- No documentation found for TopLevel "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT"+pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT = FORMAT_A4R4G4B4_UNORM_PACK16+++-- No documentation found for TopLevel "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT"+pattern FORMAT_A4B4G4R4_UNORM_PACK16_EXT = FORMAT_A4B4G4R4_UNORM_PACK16++ -- | VkPhysicalDevice4444FormatsFeaturesEXT - Structure describing additional -- 4444 formats supported by an implementation --@@ -148,6 +178,13 @@ -- -- == Valid Usage (Implicit) --+-- Note+--+-- Although the formats defined by the @VK_EXT_4444_formats@ extension were+-- promoted to Vulkan 1.3 as optional formats, the+-- 'PhysicalDevice4444FormatsFeaturesEXT' structure was not promoted to+-- Vulkan 1.3.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formats VK_EXT_4444_formats>,@@ -157,8 +194,7 @@   { -- | #features-formatA4R4G4B4# @formatA4R4G4B4@ indicates that the     -- implementation /must/ support using a     -- 'Vulkan.Core10.Enums.Format.Format' of-    -- 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT' with at-    -- least the following+    -- 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' with at least the following     -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits':     --     -- -   'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'@@ -170,8 +206,7 @@   , -- | #features-formatA4B4G4R4# @formatA4B4G4R4@ indicates that the     -- implementation /must/ support using a     -- 'Vulkan.Core10.Enums.Format.Format' of-    -- 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT' with at-    -- least the following+    -- 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' with at least the following     -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits':     --     -- -   'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'
src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Joshua Ashton@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2020-07-28 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -44,10 +53,9 @@ -- -- == Description ----- This extension defines the--- 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and--- 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats--- which are defined in other current graphics APIs.+-- This extension defines the 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and+-- 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats which are defined in other+-- current graphics APIs. -- -- This extension may be useful for building translation layers for those -- APIs or for porting applications that use these formats without having@@ -73,14 +81,24 @@ -- -- -   Extending 'Vulkan.Core10.Enums.Format.Format': -----     -   'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT'+--     -   'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT'+--     -   'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- -   Revision 1, 2020-07-04 (Joshua Ashton)@@ -94,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs view
@@ -75,7 +75,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_drm_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_drm_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs view
@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot view
@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs view
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -199,7 +199,7 @@ --     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32' -- -- -   #VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-astc-decodeModeSharedExponent decodeModeSharedExponent>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-astc-decodeModeSharedExponent decodeModeSharedExponent> --     feature is not enabled, @decodeMode@ /must/ not be --     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32' --@@ -209,7 +209,7 @@ -- -- -   #VUID-VkImageViewASTCDecodeModeEXT-format-04084# @format@ of the --     image view /must/ be one of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats> -- -- If @format@ uses sRGB encoding then the @decodeMode@ has no effect. --
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot view
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs view
@@ -276,7 +276,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -355,9 +355,9 @@ data PhysicalDeviceBlendOperationAdvancedFeaturesEXT = PhysicalDeviceBlendOperationAdvancedFeaturesEXT   { -- | #features-advancedBlendCoherentOperations#     -- @advancedBlendCoherentOperations@ specifies whether blending using-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>     -- is guaranteed to execute atomically and in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>.     -- If this is 'Vulkan.Core10.FundamentalTypes.TRUE',     -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'     -- is treated the same as@@ -431,7 +431,7 @@     -- @advancedBlendMaxColorAttachments@ is one greater than the highest color     -- attachment index that /can/ be used in a subpass, for a pipeline that     -- uses an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>.     advancedBlendMaxColorAttachments :: Word32   , -- | #limits-advancedBlendIndependentBlend# @advancedBlendIndependentBlend@     -- specifies whether advanced blend operations /can/ vary per-attachment.@@ -534,19 +534,19 @@ -- -- -   #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color> --     property is not supported, @srcPremultiplied@ /must/ be --     'Vulkan.Core10.FundamentalTypes.TRUE' -- -- -   #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color> --     property is not supported, @dstPremultiplied@ /must/ be --     'Vulkan.Core10.FundamentalTypes.TRUE' -- -- -   #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap> --     property is not supported, @blendOverlap@ /must/ be --     'BLEND_OVERLAP_UNCORRELATED_EXT' --
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot view
@@ -276,7 +276,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs view
@@ -114,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -164,7 +164,7 @@ -- -- -   #VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-borderColorSwizzle borderColorSwizzle>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-borderColorSwizzle borderColorSwizzle> --     feature /must/ be enabled. -- -- == Valid Usage (Implicit)@@ -269,7 +269,7 @@     -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT', or     -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT'     -- @borderColor@ and an image view that uses a-    -- non-<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity component mapping>,+    -- non-<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity component mapping>,     -- when either @borderColorSwizzleFromImage@ is enabled or the     -- 'SamplerBorderColorComponentMappingCreateInfoEXT' is specified.     borderColorSwizzle :: Bool@@ -281,7 +281,7 @@     -- is not set, applications /can/ chain a     -- 'SamplerBorderColorComponentMappingCreateInfoEXT' structure when     -- creating samplers for use with image views that do not have an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>     -- and, when those samplers are combined with image views using the same     -- component mapping, sampled image operations that use opaque black or     -- custom border colors will return the correct border color values.
src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot view
@@ -114,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs view
@@ -130,7 +130,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT> -- -- == Issues --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot view
@@ -130,7 +130,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT> -- -- == Issues --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -481,7 +481,8 @@ -- timestamp values reported for 'TIME_DOMAIN_DEVICE_EXT' can be matched to -- any timestamp captured through -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' .+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+-- . -- -- > struct timespec tv; -- > clock_gettime(CLOCK_MONOTONIC, &tv);@@ -507,9 +508,9 @@ -- values in this time domain use the same units and are comparable with -- device timestamp values captured using -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' and--- are defined to be incrementing according to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod>+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+-- and are defined to be incrementing according to the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod> -- of the device. pattern TIME_DOMAIN_DEVICE_EXT                    = TimeDomainEXT 0 -- | 'TIME_DOMAIN_CLOCK_MONOTONIC_EXT' specifies the CLOCK_MONOTONIC time
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -192,7 +192,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdSetColorWriteEnableEXT-None-04803# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> --     feature /must/ be enabled -- -- -   #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-04804#@@ -350,14 +350,14 @@ -- 'Vulkan.Core10.FundamentalTypes.TRUE' values. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> -- feature is not enabled on the device, all -- 'Vulkan.Core10.FundamentalTypes.Bool32' elements in the -- @pColorWriteEnables@ array /must/ be -- 'Vulkan.Core10.FundamentalTypes.TRUE'. -- -- Color Write Enable interacts with the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask> -- as follows: -- -- -   If @colorWriteEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',@@ -371,7 +371,7 @@ -- == Valid Usage -- -- -   #VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> --     feature is not enabled, all elements of @pColorWriteEnables@ /must/ --     be 'Vulkan.Core10.FundamentalTypes.TRUE' --
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot view
@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs view
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -244,7 +244,7 @@ -- -- -   #VUID-vkCmdBeginConditionalRenderingEXT-None-01980# Conditional --     rendering /must/ not already be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#active-conditional-rendering active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- == Valid Usage (Implicit) --@@ -334,17 +334,17 @@ -- -- -   #VUID-vkCmdEndConditionalRenderingEXT-None-01985# Conditional --     rendering /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#active-conditional-rendering active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- -   #VUID-vkCmdEndConditionalRenderingEXT-None-01986# If conditional --     rendering was made---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#active-conditional-rendering active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> --     outside of a render pass instance, it /must/ not be ended inside a --     render pass instance -- -- -   #VUID-vkCmdEndConditionalRenderingEXT-None-01987# If conditional --     rendering was made---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#active-conditional-rendering active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> --     within a subpass it /must/ be ended in the same subpass -- -- == Valid Usage (Implicit)@@ -518,7 +518,7 @@ -- -- -   #VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedConditionalRendering inherited conditional rendering>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedConditionalRendering inherited conditional rendering> --     feature is not enabled, @conditionalRenderingEnable@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot view
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot view
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -246,7 +246,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -300,11 +300,11 @@ --     'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ type /must/ --     match the sampled type of the provided @format@, as shown in the --     /SPIR-V Sampled Type/ column of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat> --     table -- -- -   #VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat> --     feature is not enabled then @format@ /must/ not be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' --@@ -339,7 +339,7 @@   , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' representing the     -- format of the sampled image view(s). This field may be     -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>     -- feature is enabled.     format :: Format   }
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot view
@@ -246,7 +246,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -268,7 +268,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -721,7 +721,7 @@     --     -- #VUID-VkDebugMarkerObjectNameInfoEXT-object-01492# @object@ /must/ be a     -- Vulkan object of the type associated with @objectType@ as defined in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debug-report-object-types>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>     object :: Word64   , -- | @pObjectName@ is a null-terminated UTF-8 string specifying the name to     -- apply to @object@.@@ -809,7 +809,7 @@     --     -- #VUID-VkDebugMarkerObjectTagInfoEXT-object-01495# @object@ /must/ be a     -- Vulkan object of the type associated with @objectType@ as defined in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debug-report-object-types>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>     object :: Word64   , -- | @tagName@ is a numerical identifier of the tag.     tagName :: Word64
src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot view
@@ -268,7 +268,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -322,7 +322,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -517,7 +517,7 @@                                 -- called.                                 DebugReportCallbackCreateInfoEXT                              -> -- | @pAllocator@ controls host memory allocation as described in the-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (DebugReportCallbackEXT)@@ -610,7 +610,7 @@                                  -- active.                                  DebugReportCallbackEXT                               -> -- | @pAllocator@ controls host memory allocation as described in the-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io ()@@ -652,7 +652,7 @@ --     'Vulkan.Core10.APIConstants.NULL_HANDLE', @object@ /must/ be a --     Vulkan object of the corresponding type associated with @objectType@ --     as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debug-report-object-types>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types> -- -- == Valid Usage (Implicit) --@@ -1179,7 +1179,7 @@ -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @object@ /must/ be a Vulkan -- object of the corresponding type associated with @objectType@ as defined -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debug-report-object-types>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot view
@@ -322,7 +322,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -479,7 +479,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1199,7 +1199,7 @@                                 -- conditions under which this messenger will trigger the callback.                                 DebugUtilsMessengerCreateInfoEXT                              -> -- | @pAllocator@ controls host memory allocation as described in the-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (DebugUtilsMessengerEXT)@@ -1296,7 +1296,7 @@                                  -- active.                                  DebugUtilsMessengerEXT                               -> -- | @pAllocator@ controls host memory allocation as described in the-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io ()@@ -1405,7 +1405,7 @@ --     'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_UNKNOWN', @objectHandle@ --     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a valid Vulkan --     handle of the type associated with @objectType@ as defined in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship> --     table -- -- == Valid Usage (Implicit)@@ -1516,7 +1516,7 @@     -- #VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910# @objectHandle@     -- /must/ be a valid Vulkan handle of the type associated with @objectType@     -- as defined in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship>     -- table     objectHandle :: Word64   , -- | @tagName@ is a numerical identifier of the tag.@@ -1902,14 +1902,14 @@   , -- | @pQueueLabels@ is @NULL@ or a pointer to an array of     -- 'DebugUtilsLabelEXT' active in the current 'Vulkan.Core10.Handles.Queue'     -- at the time the callback was triggered. Refer to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-queue-labels Queue Labels>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels Queue Labels>     -- for more information.     queueLabels :: Vector DebugUtilsLabelEXT   , -- | @pCmdBufLabels@ is @NULL@ or a pointer to an array of     -- 'DebugUtilsLabelEXT' active in the current     -- 'Vulkan.Core10.Handles.CommandBuffer' at the time the callback was     -- triggered. Refer to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-command-buffer-labels Command Buffer Labels>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels Command Buffer Labels>     -- for more information.     cmdBufLabels :: Vector DebugUtilsLabelEXT   , -- | @pObjects@ is a pointer to an array of 'DebugUtilsObjectNameInfoEXT'
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -479,7 +479,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs view
@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -238,7 +238,7 @@ -- -- -   #VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470# --     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl> --     is not enabled, @negativeOneToOne@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' --
src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot view
@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -240,7 +240,7 @@     flags :: PipelineRasterizationDepthClipStateCreateFlagsEXT   , -- | @depthClipEnable@ controls whether depth clipping is enabled as     -- described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.     depthClipEnable :: Bool   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs view
@@ -57,10 +57,10 @@ -- -- 1) How do 'Vulkan.Core10.Pipeline.Viewport' @minDepth@ and @maxDepth@ -- values outside of the @0.0@ to @1.0@ range interact with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>?+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>? -- -- __RESOLVED__: The behavior described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping> -- still applies. If depth clamping is disabled the depth values are still -- clipped to 0 ≤ zc ≤ wc before the viewport transform. If depth clamping -- is enabled the above equation is ignored and the depth values are@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs view
@@ -213,7 +213,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_descriptor_indexing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -234,7 +234,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -532,7 +532,7 @@     -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT', @objectHandle@ is a     -- valid Vulkan handle of the type associated with @objectType@ as defined     -- in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship>     -- table. Otherwise, @objectHandle@ is undefined.     objectHandle :: Word64   , -- | @heapIndex@ describes which memory heap this device memory allocation is
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -234,7 +234,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs view
@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_direct_mode_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_directfb_surface.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -227,7 +227,7 @@                             DirectFBSurfaceCreateInfoEXT                          -> -- | @pAllocator@ is the allocator used for host memory allocated for the                             -- surface object when there is no more specific allocator available (see-                            -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                            -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                             ("allocator" ::: Maybe AllocationCallbacks)                          -> io (SurfaceKHR) createDirectFBSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -361,7 +361,7 @@                           -- describing the event of interest to the application.                           DeviceEventInfoEXT                        -> -- | @pAllocator@ controls host memory allocation as described in the-                          -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                          -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                           -- chapter.                           ("allocator" ::: Maybe AllocationCallbacks)                        -> io (Fence)@@ -440,7 +440,7 @@                            -- describing the event of interest to the application.                            DisplayEventInfoEXT                         -> -- | @pAllocator@ controls host memory allocation as described in the-                           -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                           -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                            -- chapter.                            ("allocator" ::: Maybe AllocationCallbacks)                         -> io (Fence)
src/Vulkan/Extensions/VK_EXT_display_control.hs-boot view
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -363,7 +363,7 @@     -- #VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246#     -- @supportedSurfaceCounters@ /must/ not include     -- 'SURFACE_COUNTER_VBLANK_BIT_EXT' unless the surface queried is a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#wsi-display-surfaces display surface>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#wsi-display-surfaces display surface>     supportedSurfaceCounters :: SurfaceCounterFlagsEXT   }   deriving (Typeable)
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot view
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -23,1495 +23,383 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ ----- [__Contact__]------     -   Piers Daniell---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state] @pdaniell-nv%0A<<Here describe the issue or question you have about the VK_EXT_extended_dynamic_state extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2019-12-09------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Dan Ginsburg, Valve Corporation------     -   Graeme Leese, Broadcom------     -   Hans-Kristian Arntzen, Valve Corporation------     -   Jan-Harald Fredriksen, Arm Limited------     -   Jason Ekstrand, Intel------     -   Jeff Bolz, NVIDIA------     -   Jesse Hall, Google------     -   Philip Rebohle, Valve Corporation------     -   Stuart Smith, Imagination Technologies------     -   Tobias Hector, AMD------ == Description------ This extension adds some more dynamic state to support applications that--- need to reduce the number of pipeline state objects they compile and--- bind.------ == New Commands------ -   'cmdBindVertexBuffers2EXT'------ -   'cmdSetCullModeEXT'------ -   'cmdSetDepthBoundsTestEnableEXT'------ -   'cmdSetDepthCompareOpEXT'------ -   'cmdSetDepthTestEnableEXT'------ -   'cmdSetDepthWriteEnableEXT'------ -   'cmdSetFrontFaceEXT'------ -   'cmdSetPrimitiveTopologyEXT'------ -   'cmdSetScissorWithCountEXT'------ -   'cmdSetStencilOpEXT'------ -   'cmdSetStencilTestEnableEXT'------ -   'cmdSetViewportWithCountEXT'------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceExtendedDynamicStateFeaturesEXT'------ == New Enum Constants------ -   'EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME'------ -   'EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'------     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT'------ == Version History------ -   Revision 1, 2019-12-09 (Piers Daniell)------     -   Internal revisions------ == See Also------ 'PhysicalDeviceExtendedDynamicStateFeaturesEXT',--- 'cmdBindVertexBuffers2EXT', 'cmdSetCullModeEXT',--- 'cmdSetDepthBoundsTestEnableEXT', 'cmdSetDepthCompareOpEXT',--- 'cmdSetDepthTestEnableEXT', 'cmdSetDepthWriteEnableEXT',--- 'cmdSetFrontFaceEXT', 'cmdSetPrimitiveTopologyEXT',--- 'cmdSetScissorWithCountEXT', 'cmdSetStencilOpEXT',--- 'cmdSetStencilTestEnableEXT', 'cmdSetViewportWithCountEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state 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_extended_dynamic_state  ( cmdSetCullModeEXT-                                                        , cmdSetFrontFaceEXT-                                                        , cmdSetPrimitiveTopologyEXT-                                                        , cmdSetViewportWithCountEXT-                                                        , cmdSetScissorWithCountEXT-                                                        , cmdBindVertexBuffers2EXT-                                                        , cmdSetDepthTestEnableEXT-                                                        , cmdSetDepthWriteEnableEXT-                                                        , cmdSetDepthCompareOpEXT-                                                        , cmdSetDepthBoundsTestEnableEXT-                                                        , cmdSetStencilTestEnableEXT-                                                        , cmdSetStencilOpEXT-                                                        , PhysicalDeviceExtendedDynamicStateFeaturesEXT(..)-                                                        , EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION-                                                        , pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION-                                                        , EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME-                                                        , pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME-                                                        ) where--import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Foreign.Marshal.Alloc (allocaBytes)-import GHC.IO (throwIO)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length)-import qualified Data.Vector (null)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.FundamentalTypes (Bool32(..))-import Vulkan.Core10.Handles (Buffer)-import Vulkan.Core10.Handles (Buffer(..))-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.Enums.CompareOp (CompareOp)-import Vulkan.Core10.Enums.CompareOp (CompareOp(..))-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)-import Vulkan.Dynamic (DeviceCmds(pVkCmdBindVertexBuffers2EXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCullModeEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBoundsTestEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthCompareOpEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthTestEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthWriteEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFrontFaceEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveTopologyEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetScissorWithCountEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilOpEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilTestEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWithCountEXT))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.Core10.Enums.FrontFace (FrontFace)-import Vulkan.Core10.Enums.FrontFace (FrontFace(..))-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))-import Vulkan.Core10.FundamentalTypes (Rect2D)-import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlagBits(..))-import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlags)-import Vulkan.Core10.Enums.StencilOp (StencilOp)-import Vulkan.Core10.Enums.StencilOp (StencilOp(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Pipeline (Viewport)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetCullModeEXT-  :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ()) -> Ptr CommandBuffer_T -> CullModeFlags -> IO ()---- | vkCmdSetCullModeEXT - Set cull mode dynamically for a command buffer------ = Description------ This command sets the cull mode for subsequent drawing commands when the--- graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@cullMode@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetCullModeEXT-None-03384# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetCullModeEXT-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetCullModeEXT-cullMode-parameter# @cullMode@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values------ -   #VUID-vkCmdSetCullModeEXT-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-vkCmdSetCullModeEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags'-cmdSetCullModeEXT :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @cullMode@ specifies the cull mode property to use for drawing.-                     CullModeFlags-                  -> io ()-cmdSetCullModeEXT commandBuffer cullMode = liftIO $ do-  let vkCmdSetCullModeEXTPtr = pVkCmdSetCullModeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetCullModeEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCullModeEXT is null" Nothing Nothing-  let vkCmdSetCullModeEXT' = mkVkCmdSetCullModeEXT vkCmdSetCullModeEXTPtr-  traceAroundEvent "vkCmdSetCullModeEXT" (vkCmdSetCullModeEXT' (commandBufferHandle (commandBuffer)) (cullMode))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetFrontFaceEXT-  :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ()) -> Ptr CommandBuffer_T -> FrontFace -> IO ()---- | vkCmdSetFrontFaceEXT - Set front face orientation dynamically for a--- command buffer------ = Description------ This command sets the front face orientation for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@frontFace@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetFrontFaceEXT-None-03383# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetFrontFaceEXT-frontFace-parameter# @frontFace@ /must/---     be a valid 'Vulkan.Core10.Enums.FrontFace.FrontFace' value------ -   #VUID-vkCmdSetFrontFaceEXT-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-vkCmdSetFrontFaceEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.FrontFace.FrontFace'-cmdSetFrontFaceEXT :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command will be-                      -- recorded.-                      CommandBuffer-                   -> -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value-                      -- specifying the front-facing triangle orientation to be used for culling.-                      FrontFace-                   -> io ()-cmdSetFrontFaceEXT commandBuffer frontFace = liftIO $ do-  let vkCmdSetFrontFaceEXTPtr = pVkCmdSetFrontFaceEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetFrontFaceEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFrontFaceEXT is null" Nothing Nothing-  let vkCmdSetFrontFaceEXT' = mkVkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXTPtr-  traceAroundEvent "vkCmdSetFrontFaceEXT" (vkCmdSetFrontFaceEXT' (commandBufferHandle (commandBuffer)) (frontFace))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetPrimitiveTopologyEXT-  :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) -> Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()---- | vkCmdSetPrimitiveTopologyEXT - Set primitive topology state dynamically--- for a command buffer------ = Description------ This command sets the primitive topology for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetPrimitiveTopologyEXT-None-03347# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetPrimitiveTopologyEXT-primitiveTopology-parameter#---     @primitiveTopology@ /must/ be a valid---     'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value------ -   #VUID-vkCmdSetPrimitiveTopologyEXT-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-vkCmdSetPrimitiveTopologyEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology'-cmdSetPrimitiveTopologyEXT :: forall io-                            . (MonadIO io)-                           => -- | @commandBuffer@ is the command buffer into which the command will be-                              -- recorded.-                              CommandBuffer-                           -> -- | @primitiveTopology@ specifies the primitive topology to use for drawing.-                              PrimitiveTopology-                           -> io ()-cmdSetPrimitiveTopologyEXT commandBuffer primitiveTopology = liftIO $ do-  let vkCmdSetPrimitiveTopologyEXTPtr = pVkCmdSetPrimitiveTopologyEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetPrimitiveTopologyEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveTopologyEXT is null" Nothing Nothing-  let vkCmdSetPrimitiveTopologyEXT' = mkVkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXTPtr-  traceAroundEvent "vkCmdSetPrimitiveTopologyEXT" (vkCmdSetPrimitiveTopologyEXT' (commandBufferHandle (commandBuffer)) (primitiveTopology))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetViewportWithCountEXT-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()---- | vkCmdSetViewportWithCountEXT - Set the viewport count and viewports--- dynamically for a command buffer------ = Description------ This command sets the viewport count and viewports state for subsequent--- drawing commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@--- and @pViewports@ values used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetViewportWithCountEXT-None-03393# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ -   #VUID-vkCmdSetViewportWithCountEXT-viewportCount-03394#---     @viewportCount@ /must/ be between @1@ and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,---     inclusive------ -   #VUID-vkCmdSetViewportWithCountEXT-viewportCount-03395# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>---     feature is not enabled, @viewportCount@ /must/ be @1@------ -   #VUID-vkCmdSetViewportWithCountEXT-commandBuffer-04819#---     @commandBuffer@ /must/ not have---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@---     enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetViewportWithCountEXT-pViewports-parameter#---     @pViewports@ /must/ be a valid pointer to an array of---     @viewportCount@ valid 'Vulkan.Core10.Pipeline.Viewport' structures------ -   #VUID-vkCmdSetViewportWithCountEXT-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-vkCmdSetViewportWithCountEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdSetViewportWithCountEXT-viewportCount-arraylength#---     @viewportCount@ /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#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'-cmdSetViewportWithCountEXT :: forall io-                            . (MonadIO io)-                           => -- | @commandBuffer@ is the command buffer into which the command will be-                              -- recorded.-                              CommandBuffer-                           -> -- | @pViewports@ specifies the viewports to use for drawing.-                              ("viewports" ::: Vector Viewport)-                           -> io ()-cmdSetViewportWithCountEXT commandBuffer viewports = liftIO . evalContT $ do-  let vkCmdSetViewportWithCountEXTPtr = pVkCmdSetViewportWithCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdSetViewportWithCountEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWithCountEXT is null" Nothing Nothing-  let vkCmdSetViewportWithCountEXT' = mkVkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXTPtr-  pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)-  lift $ traceAroundEvent "vkCmdSetViewportWithCountEXT" (vkCmdSetViewportWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetScissorWithCountEXT-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()---- | vkCmdSetScissorWithCountEXT - Set the scissor count and scissor--- rectangular bounds dynamically for a command buffer------ = Description------ This command sets the scissor count and scissor rectangular bounds state--- for subsequence drawing commands when the graphics pipeline is created--- with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@--- and @pScissors@ values used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetScissorWithCountEXT-None-03396# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ -   #VUID-vkCmdSetScissorWithCountEXT-scissorCount-03397# @scissorCount@---     /must/ be between @1@ and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,---     inclusive------ -   #VUID-vkCmdSetScissorWithCountEXT-scissorCount-03398# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>---     feature is not enabled, @scissorCount@ /must/ be @1@------ -   #VUID-vkCmdSetScissorWithCountEXT-x-03399# The @x@ and @y@ members---     of @offset@ member of any element of @pScissors@ /must/ be greater---     than or equal to @0@------ -   #VUID-vkCmdSetScissorWithCountEXT-offset-03400# Evaluation of---     (@offset.x@ + @extent.width@) /must/ not cause a signed integer---     addition overflow for any element of @pScissors@------ -   #VUID-vkCmdSetScissorWithCountEXT-offset-03401# Evaluation of---     (@offset.y@ + @extent.height@) /must/ not cause a signed integer---     addition overflow for any element of @pScissors@------ -   #VUID-vkCmdSetScissorWithCountEXT-commandBuffer-04820#---     @commandBuffer@ /must/ not have---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@---     enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetScissorWithCountEXT-pScissors-parameter# @pScissors@---     /must/ be a valid pointer to an array of @scissorCount@---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ -   #VUID-vkCmdSetScissorWithCountEXT-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-vkCmdSetScissorWithCountEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdSetScissorWithCountEXT-scissorCount-arraylength#---     @scissorCount@ /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#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.Rect2D'-cmdSetScissorWithCountEXT :: forall io-                           . (MonadIO io)-                          => -- | @commandBuffer@ is the command buffer into which the command will be-                             -- recorded.-                             CommandBuffer-                          -> -- | @pScissors@ specifies the scissors to use for drawing.-                             ("scissors" ::: Vector Rect2D)-                          -> io ()-cmdSetScissorWithCountEXT commandBuffer scissors = liftIO . evalContT $ do-  let vkCmdSetScissorWithCountEXTPtr = pVkCmdSetScissorWithCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdSetScissorWithCountEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissorWithCountEXT is null" Nothing Nothing-  let vkCmdSetScissorWithCountEXT' = mkVkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXTPtr-  pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)-  lift $ traceAroundEvent "vkCmdSetScissorWithCountEXT" (vkCmdSetScissorWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBindVertexBuffers2EXT-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()---- | vkCmdBindVertexBuffers2EXT - Bind vertex buffers to a command buffer and--- dynamically set strides------ = Description------ The values taken from elements i of @pBuffers@ and @pOffsets@ replace--- the current state for the vertex input binding @firstBinding@ + i, for i--- in [0, @bindingCount@). The vertex input binding is updated to start at--- the offset indicated by @pOffsets@[i] from the start of the buffer--- @pBuffers@[i]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the--- bound size of the vertex buffer starting from the corresponding elements--- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that--- use each of these bindings will use these updated addresses in their--- address calculations for subsequent drawing commands. If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is enabled, elements of @pBuffers@ /can/ be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the--- vertex shader. If a vertex input attribute is bound to a vertex input--- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values--- taken from memory are considered to be zero, and missing G, B, or A--- components are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.------ This command also \<pipelines-dynamic-state, dynamically sets>> the byte--- strides between consecutive elements within buffer @pBuffers@[i] to the--- corresponding @pStrides@[i] value when the graphics pipeline is created--- with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, strides are specified by the--- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ values--- used to create the currently active pipeline.------ If the bound pipeline state object was also created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /can/ be used instead of 'cmdBindVertexBuffers2EXT' to set the stride.------ == Valid Usage------ -   #VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03355# @firstBinding@---     /must/ be less than---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ -   #VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03356# The sum of---     @firstBinding@ and @bindingCount@ /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ -   #VUID-vkCmdBindVertexBuffers2EXT-pOffsets-03357# All elements of---     @pOffsets@ /must/ be less than the size of the corresponding element---     in @pBuffers@------ -   #VUID-vkCmdBindVertexBuffers2EXT-pSizes-03358# If @pSizes@ is not---     @NULL@, all elements of @pOffsets@ plus @pSizes@ /must/ be less than---     or equal to the size of the corresponding element in @pBuffers@------ -   #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03359# All elements of---     @pBuffers@ /must/ have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'---     flag------ -   #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03360# Each element of---     @pBuffers@ that is non-sparse /must/ be bound completely and---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04111# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all elements of @pBuffers@ /must/ not be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04112# If an element of---     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     corresponding element of @pOffsets@ /must/ be zero------ -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03362# If @pStrides@ is---     not @NULL@ each element of @pStrides@ /must/ be less than or equal---     to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@------ -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-06209# If @pStrides@ is---     not @NULL@ each element of @pStrides@ /must/ be either 0 or greater---     than or equal to the maximum extent of all vertex input attributes---     fetched from the corresponding binding, where the extent is---     calculated as the---     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@offset@---     plus---     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@---     size------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter# @pBuffers@---     /must/ be a valid pointer to an array of @bindingCount@ valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE'---     'Vulkan.Core10.Handles.Buffer' handles------ -   #VUID-vkCmdBindVertexBuffers2EXT-pOffsets-parameter# @pOffsets@---     /must/ be a valid pointer to an array of @bindingCount@---     'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ -   #VUID-vkCmdBindVertexBuffers2EXT-pSizes-parameter# If @pSizes@ is---     not @NULL@, @pSizes@ /must/ be a valid pointer to an array of---     @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-parameter# If @pStrides@---     is not @NULL@, @pStrides@ /must/ be a valid pointer to an array of---     @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ -   #VUID-vkCmdBindVertexBuffers2EXT-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-vkCmdBindVertexBuffers2EXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBindVertexBuffers2EXT-bindingCount-arraylength# If any of---     @pSizes@, or @pStrides@ are not @NULL@, @bindingCount@ /must/ be---     greater than @0@------ -   #VUID-vkCmdBindVertexBuffers2EXT-commonparent# Both of---     @commandBuffer@, and the elements of @pBuffers@ that are valid---     handles of non-ignored parameters /must/ have been created,---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdBindVertexBuffers2EXT :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command is-                            -- recorded.-                            CommandBuffer-                         -> -- | @firstBinding@ is the index of the first vertex input binding whose-                            -- state is updated by the command.-                            ("firstBinding" ::: Word32)-                         -> -- | @pBuffers@ is a pointer to an array of buffer handles.-                            ("buffers" ::: Vector Buffer)-                         -> -- | @pOffsets@ is a pointer to an array of buffer offsets.-                            ("offsets" ::: Vector DeviceSize)-                         -> -- | @pSizes@ is @NULL@ or a pointer to an array of the size in bytes of-                            -- vertex data bound from @pBuffers@.-                            ("sizes" ::: Vector DeviceSize)-                         -> -- | @pStrides@ is @NULL@ or a pointer to an array of buffer strides.-                            ("strides" ::: Vector DeviceSize)-                         -> io ()-cmdBindVertexBuffers2EXT commandBuffer firstBinding buffers offsets sizes strides = liftIO . evalContT $ do-  let vkCmdBindVertexBuffers2EXTPtr = pVkCmdBindVertexBuffers2EXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBindVertexBuffers2EXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers2EXT is null" Nothing Nothing-  let vkCmdBindVertexBuffers2EXT' = mkVkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXTPtr-  let pBuffersLength = Data.Vector.length $ (buffers)-  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $-    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing-  let pSizesLength = Data.Vector.length $ (sizes)-  lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $-    throwIO $ IOError Nothing InvalidArgument "" "pSizes and pBuffers must have the same length" Nothing Nothing-  let pStridesLength = Data.Vector.length $ (strides)-  lift $ unless (fromIntegral pStridesLength == pBuffersLength || pStridesLength == 0) $-    throwIO $ IOError Nothing InvalidArgument "" "pStrides and pBuffers must have the same length" Nothing Nothing-  pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)-  pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)-  pSizes <- if Data.Vector.null (sizes)-    then pure nullPtr-    else do-      pPSizes <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (sizes))) * 8)-      lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))-      pure $ pPSizes-  pStrides <- if Data.Vector.null (strides)-    then pure nullPtr-    else do-      pPStrides <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (strides))) * 8)-      lift $ Data.Vector.imapM_ (\i e -> poke (pPStrides `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((strides))-      pure $ pPStrides-  lift $ traceAroundEvent "vkCmdBindVertexBuffers2EXT" (vkCmdBindVertexBuffers2EXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthTestEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthTestEnableEXT - Set depth test enable dynamically for a--- command buffer------ = Description------ This command sets the depth test enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthTestEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthTestEnableEXT-None-03352# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthTestEnableEXT-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-vkCmdSetDepthTestEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthTestEnableEXT :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command will be-                            -- recorded.-                            CommandBuffer-                         -> -- | @depthTestEnable@ specifies if the depth test is enabled.-                            ("depthTestEnable" ::: Bool)-                         -> io ()-cmdSetDepthTestEnableEXT commandBuffer depthTestEnable = liftIO $ do-  let vkCmdSetDepthTestEnableEXTPtr = pVkCmdSetDepthTestEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthTestEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthTestEnableEXT is null" Nothing Nothing-  let vkCmdSetDepthTestEnableEXT' = mkVkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXTPtr-  traceAroundEvent "vkCmdSetDepthTestEnableEXT" (vkCmdSetDepthTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthWriteEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthWriteEnableEXT - Set depth write enable dynamically for a--- command buffer------ = Description------ This command sets the depth write enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthWriteEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthWriteEnableEXT-None-03354# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthWriteEnableEXT-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-vkCmdSetDepthWriteEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthWriteEnableEXT :: forall io-                           . (MonadIO io)-                          => -- | @commandBuffer@ is the command buffer into which the command will be-                             -- recorded.-                             CommandBuffer-                          -> -- | @depthWriteEnable@ specifies if depth writes are enabled.-                             ("depthWriteEnable" ::: Bool)-                          -> io ()-cmdSetDepthWriteEnableEXT commandBuffer depthWriteEnable = liftIO $ do-  let vkCmdSetDepthWriteEnableEXTPtr = pVkCmdSetDepthWriteEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthWriteEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthWriteEnableEXT is null" Nothing Nothing-  let vkCmdSetDepthWriteEnableEXT' = mkVkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXTPtr-  traceAroundEvent "vkCmdSetDepthWriteEnableEXT" (vkCmdSetDepthWriteEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthCompareOpEXT-  :: FunPtr (Ptr CommandBuffer_T -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> CompareOp -> IO ()---- | vkCmdSetDepthCompareOpEXT - Set depth comparison operator dynamically--- for a command buffer------ = Description------ This command sets the depth comparison operator for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthCompareOpEXT-None-03353# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthCompareOpEXT-depthCompareOp-parameter#---     @depthCompareOp@ /must/ be a valid---     'Vulkan.Core10.Enums.CompareOp.CompareOp' value------ -   #VUID-vkCmdSetDepthCompareOpEXT-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-vkCmdSetDepthCompareOpEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.CompareOp.CompareOp'-cmdSetDepthCompareOpEXT :: forall io-                         . (MonadIO io)-                        => -- | @commandBuffer@ is the command buffer into which the command will be-                           -- recorded.-                           CommandBuffer-                        -> -- | @depthCompareOp@ specifies the depth comparison operator.-                           ("depthCompareOp" ::: CompareOp)-                        -> io ()-cmdSetDepthCompareOpEXT commandBuffer depthCompareOp = liftIO $ do-  let vkCmdSetDepthCompareOpEXTPtr = pVkCmdSetDepthCompareOpEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthCompareOpEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthCompareOpEXT is null" Nothing Nothing-  let vkCmdSetDepthCompareOpEXT' = mkVkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXTPtr-  traceAroundEvent "vkCmdSetDepthCompareOpEXT" (vkCmdSetDepthCompareOpEXT' (commandBufferHandle (commandBuffer)) (depthCompareOp))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthBoundsTestEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthBoundsTestEnableEXT - Set depth bounds test enable--- dynamically for a command buffer------ = Description------ This command sets the depth bounds enable for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthBoundsTestEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthBoundsTestEnableEXT-None-03349# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthBoundsTestEnableEXT-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-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBoundsTestEnableEXT :: forall io-                                . (MonadIO io)-                               => -- | @commandBuffer@ is the command buffer into which the command will be-                                  -- recorded.-                                  CommandBuffer-                               -> -- | @depthBoundsTestEnable@ specifies if the depth bounds test is enabled.-                                  ("depthBoundsTestEnable" ::: Bool)-                               -> io ()-cmdSetDepthBoundsTestEnableEXT commandBuffer depthBoundsTestEnable = liftIO $ do-  let vkCmdSetDepthBoundsTestEnableEXTPtr = pVkCmdSetDepthBoundsTestEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthBoundsTestEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBoundsTestEnableEXT is null" Nothing Nothing-  let vkCmdSetDepthBoundsTestEnableEXT' = mkVkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXTPtr-  traceAroundEvent "vkCmdSetDepthBoundsTestEnableEXT" (vkCmdSetDepthBoundsTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetStencilTestEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetStencilTestEnableEXT - Set stencil test enable dynamically for a--- command buffer------ = Description------ This command sets the stencil test enable for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetStencilTestEnableEXT-None-03350# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetStencilTestEnableEXT-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-vkCmdSetStencilTestEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetStencilTestEnableEXT :: forall io-                            . (MonadIO io)-                           => -- | @commandBuffer@ is the command buffer into which the command will be-                              -- recorded.-                              CommandBuffer-                           -> -- | @stencilTestEnable@ specifies if the stencil test is enabled.-                              ("stencilTestEnable" ::: Bool)-                           -> io ()-cmdSetStencilTestEnableEXT commandBuffer stencilTestEnable = liftIO $ do-  let vkCmdSetStencilTestEnableEXTPtr = pVkCmdSetStencilTestEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetStencilTestEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilTestEnableEXT is null" Nothing Nothing-  let vkCmdSetStencilTestEnableEXT' = mkVkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXTPtr-  traceAroundEvent "vkCmdSetStencilTestEnableEXT" (vkCmdSetStencilTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetStencilOpEXT-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()---- | vkCmdSetStencilOpEXT - Set stencil operation dynamically for a command--- buffer------ = Description------ This command sets the stencil operation for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@failOp@,--- @passOp@, @depthFailOp@, and @compareOp@ values used to create the--- currently active pipeline, for both front and back faces.------ == Valid Usage------ -   #VUID-vkCmdSetStencilOpEXT-None-03351# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetStencilOpEXT-faceMask-parameter# @faceMask@ /must/ be---     a valid combination of---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ -   #VUID-vkCmdSetStencilOpEXT-faceMask-requiredbitmask# @faceMask@---     /must/ not be @0@------ -   #VUID-vkCmdSetStencilOpEXT-failOp-parameter# @failOp@ /must/ be a---     valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value------ -   #VUID-vkCmdSetStencilOpEXT-passOp-parameter# @passOp@ /must/ be a---     valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value------ -   #VUID-vkCmdSetStencilOpEXT-depthFailOp-parameter# @depthFailOp@---     /must/ be a valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value------ -   #VUID-vkCmdSetStencilOpEXT-compareOp-parameter# @compareOp@ /must/---     be a valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value------ -   #VUID-vkCmdSetStencilOpEXT-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-vkCmdSetStencilOpEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.CompareOp.CompareOp',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags',--- 'Vulkan.Core10.Enums.StencilOp.StencilOp'-cmdSetStencilOpEXT :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command will be-                      -- recorded.-                      CommandBuffer-                   -> -- | @faceMask@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying-                      -- the set of stencil state for which to update the stencil operation.-                      ("faceMask" ::: StencilFaceFlags)-                   -> -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying-                      -- the action performed on samples that fail the stencil test.-                      ("failOp" ::: StencilOp)-                   -> -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying-                      -- the action performed on samples that pass both the depth and stencil-                      -- tests.-                      ("passOp" ::: StencilOp)-                   -> -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value-                      -- specifying the action performed on samples that pass the stencil test-                      -- and fail the depth test.-                      ("depthFailOp" ::: StencilOp)-                   -> -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value-                      -- specifying the comparison operator used in the stencil test.-                      CompareOp-                   -> io ()-cmdSetStencilOpEXT commandBuffer faceMask failOp passOp depthFailOp compareOp = liftIO $ do-  let vkCmdSetStencilOpEXTPtr = pVkCmdSetStencilOpEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetStencilOpEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilOpEXT is null" Nothing Nothing-  let vkCmdSetStencilOpEXT' = mkVkCmdSetStencilOpEXT vkCmdSetStencilOpEXTPtr-  traceAroundEvent "vkCmdSetStencilOpEXT" (vkCmdSetStencilOpEXT' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp))-  pure $ ()----- | VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing--- what extended dynamic state can be used------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /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_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT-  { -- | #features-extendedDynamicState# @extendedDynamicState@ indicates that-    -- the implementation supports the following dynamic states:-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'-    ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+--     -   Piers Daniell+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state] @pdaniell-nv%0A<<Here describe the issue or question you have about the VK_EXT_extended_dynamic_state extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2019-12-09+--+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Dan Ginsburg, Valve Corporation+--+--     -   Graeme Leese, Broadcom+--+--     -   Hans-Kristian Arntzen, Valve Corporation+--+--     -   Jan-Harald Fredriksen, Arm Limited+--+--     -   Jason Ekstrand, Intel+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Jesse Hall, Google+--+--     -   Philip Rebohle, Valve Corporation+--+--     -   Stuart Smith, Imagination Technologies+--+--     -   Tobias Hector, AMD+--+-- == Description+--+-- This extension adds some more dynamic state to support applications that+-- need to reduce the number of pipeline state objects they compile and+-- bind.+--+-- == New Commands+--+-- -   'cmdBindVertexBuffers2EXT'+--+-- -   'cmdSetCullModeEXT'+--+-- -   'cmdSetDepthBoundsTestEnableEXT'+--+-- -   'cmdSetDepthCompareOpEXT'+--+-- -   'cmdSetDepthTestEnableEXT'+--+-- -   'cmdSetDepthWriteEnableEXT'+--+-- -   'cmdSetFrontFaceEXT'+--+-- -   'cmdSetPrimitiveTopologyEXT'+--+-- -   'cmdSetScissorWithCountEXT'+--+-- -   'cmdSetStencilOpEXT'+--+-- -   'cmdSetStencilTestEnableEXT'+--+-- -   'cmdSetViewportWithCountEXT'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceExtendedDynamicStateFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME'+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'DYNAMIC_STATE_CULL_MODE_EXT'+--+--     -   'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'+--+--     -   'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'+--+--     -   'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'+--+--     -   'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'+--+--     -   'DYNAMIC_STATE_FRONT_FACE_EXT'+--+--     -   'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--+--     -   'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--+--     -   'DYNAMIC_STATE_STENCIL_OP_EXT'+--+--     -   'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'+--+--     -   'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--+--     -   'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT'+--+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. All dynamic state enumerants+-- and entry points in this extension are included in core Vulkan 1.3, with+-- the EXT suffix omitted. The feature structure is not promoted. Extension+-- interfaces that were promoted remain available as aliases of the core+-- functionality.+--+-- == Version History+--+-- -   Revision 1, 2019-12-09 (Piers Daniell)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT',+-- 'cmdBindVertexBuffers2EXT', 'cmdSetCullModeEXT',+-- 'cmdSetDepthBoundsTestEnableEXT', 'cmdSetDepthCompareOpEXT',+-- 'cmdSetDepthTestEnableEXT', 'cmdSetDepthWriteEnableEXT',+-- 'cmdSetFrontFaceEXT', 'cmdSetPrimitiveTopologyEXT',+-- 'cmdSetScissorWithCountEXT', 'cmdSetStencilOpEXT',+-- 'cmdSetStencilTestEnableEXT', 'cmdSetViewportWithCountEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state 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_extended_dynamic_state  ( pattern DYNAMIC_STATE_CULL_MODE_EXT+                                                        , pattern DYNAMIC_STATE_FRONT_FACE_EXT+                                                        , pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT+                                                        , pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT+                                                        , pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT+                                                        , pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT+                                                        , pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT+                                                        , pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT+                                                        , pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT+                                                        , pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT+                                                        , pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT+                                                        , pattern DYNAMIC_STATE_STENCIL_OP_EXT+                                                        , cmdSetCullModeEXT+                                                        , cmdSetFrontFaceEXT+                                                        , cmdSetPrimitiveTopologyEXT+                                                        , cmdSetViewportWithCountEXT+                                                        , cmdSetScissorWithCountEXT+                                                        , cmdBindVertexBuffers2EXT+                                                        , cmdSetDepthTestEnableEXT+                                                        , cmdSetDepthWriteEnableEXT+                                                        , cmdSetDepthCompareOpEXT+                                                        , cmdSetDepthBoundsTestEnableEXT+                                                        , cmdSetStencilTestEnableEXT+                                                        , cmdSetStencilOpEXT+                                                        , PhysicalDeviceExtendedDynamicStateFeaturesEXT(..)+                                                        , EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION+                                                        , pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION+                                                        , EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME+                                                        , pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME+                                                        ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdBindVertexBuffers2)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetCullMode)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthBoundsTestEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthCompareOp)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthTestEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthWriteEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetFrontFace)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetPrimitiveTopology)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetScissorWithCount)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetStencilOp)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetStencilTestEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetViewportWithCount)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_CULL_MODE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_COMPARE_OP))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_TEST_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_WRITE_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_FRONT_FACE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_PRIMITIVE_TOPOLOGY))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_SCISSOR_WITH_COUNT))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_STENCIL_OP))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_STENCIL_TEST_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_VIEWPORT_WITH_COUNT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT))+-- No documentation found for TopLevel "VK_DYNAMIC_STATE_CULL_MODE_EXT"+pattern DYNAMIC_STATE_CULL_MODE_EXT = DYNAMIC_STATE_CULL_MODE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_FRONT_FACE_EXT"+pattern DYNAMIC_STATE_FRONT_FACE_EXT = DYNAMIC_STATE_FRONT_FACE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT"+pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = DYNAMIC_STATE_PRIMITIVE_TOPOLOGY+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT"+pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = DYNAMIC_STATE_VIEWPORT_WITH_COUNT+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT"+pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = DYNAMIC_STATE_SCISSOR_WITH_COUNT+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT"+pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = DYNAMIC_STATE_DEPTH_TEST_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = DYNAMIC_STATE_DEPTH_WRITE_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT"+pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = DYNAMIC_STATE_DEPTH_COMPARE_OP+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT"+pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = DYNAMIC_STATE_STENCIL_TEST_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_STENCIL_OP_EXT"+pattern DYNAMIC_STATE_STENCIL_OP_EXT = DYNAMIC_STATE_STENCIL_OP+++-- No documentation found for TopLevel "vkCmdSetCullModeEXT"+cmdSetCullModeEXT = cmdSetCullMode+++-- No documentation found for TopLevel "vkCmdSetFrontFaceEXT"+cmdSetFrontFaceEXT = cmdSetFrontFace+++-- No documentation found for TopLevel "vkCmdSetPrimitiveTopologyEXT"+cmdSetPrimitiveTopologyEXT = cmdSetPrimitiveTopology+++-- No documentation found for TopLevel "vkCmdSetViewportWithCountEXT"+cmdSetViewportWithCountEXT = cmdSetViewportWithCount+++-- No documentation found for TopLevel "vkCmdSetScissorWithCountEXT"+cmdSetScissorWithCountEXT = cmdSetScissorWithCount+++-- No documentation found for TopLevel "vkCmdBindVertexBuffers2EXT"+cmdBindVertexBuffers2EXT = cmdBindVertexBuffers2+++-- No documentation found for TopLevel "vkCmdSetDepthTestEnableEXT"+cmdSetDepthTestEnableEXT = cmdSetDepthTestEnable+++-- No documentation found for TopLevel "vkCmdSetDepthWriteEnableEXT"+cmdSetDepthWriteEnableEXT = cmdSetDepthWriteEnable+++-- No documentation found for TopLevel "vkCmdSetDepthCompareOpEXT"+cmdSetDepthCompareOpEXT = cmdSetDepthCompareOp+++-- No documentation found for TopLevel "vkCmdSetDepthBoundsTestEnableEXT"+cmdSetDepthBoundsTestEnableEXT = cmdSetDepthBoundsTestEnable+++-- No documentation found for TopLevel "vkCmdSetStencilTestEnableEXT"+cmdSetStencilTestEnableEXT = cmdSetStencilTestEnable+++-- No documentation found for TopLevel "vkCmdSetStencilOpEXT"+cmdSetStencilOpEXT = cmdSetStencilOp+++-- | VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing+-- what extended dynamic state can be used+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /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_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT+  { -- | #features-extendedDynamicState# @extendedDynamicState@ indicates that+    -- the implementation supports the following dynamic states:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP'     extendedDynamicState :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Piers Daniell@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2019-12-09 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -106,34 +115,42 @@ -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'+--     -   'DYNAMIC_STATE_CULL_MODE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'+--     -   'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'+--     -   'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'+--     -   'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'+--     -   'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'+--     -   'DYNAMIC_STATE_FRONT_FACE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     -   'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     -   'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+--     -   'DYNAMIC_STATE_STENCIL_OP_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'+--     -   'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     -   'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     -   'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. All dynamic state enumerants+-- and entry points in this extension are included in core Vulkan 1.3, with+-- the EXT suffix omitted. The feature structure is not promoted. Extension+-- interfaces that were promoted remain available as aliases of the core+-- functionality.+-- -- == Version History -- -- -   Revision 1, 2019-12-09 (Piers Daniell)@@ -153,7 +170,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Vikram Kushwaha@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2021-04-12 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -78,20 +87,32 @@ -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     -   'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' -- --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' -- --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     -   'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     -   'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The dynamic state enumerants+-- 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',+-- 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT', and+-- 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'; and the corresponding+-- entry points in this extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. The enumerants and entry points for dynamic logic+-- operation and patch control points are not promoted, nor is the feature+-- structure. Extension interfaces that were promoted remain available as+-- aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2021-04-12 (Vikram Kushwaha)@@ -108,14 +129,17 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 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_extended_dynamic_state2  ( cmdSetPatchControlPointsEXT+                                                         , cmdSetLogicOpEXT+                                                         , pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT+                                                         , pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT+                                                         , pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT                                                          , cmdSetRasterizerDiscardEnableEXT                                                          , cmdSetDepthBiasEnableEXT-                                                         , cmdSetLogicOpEXT                                                          , cmdSetPrimitiveRestartEnableEXT                                                          , PhysicalDeviceExtendedDynamicState2FeaturesEXT(..)                                                          , EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION@@ -153,21 +177,23 @@ import Data.Kind (Type) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 (cmdSetDepthBiasEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 (cmdSetPrimitiveRestartEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 (cmdSetRasterizerDiscardEnable) import Vulkan.NamedType ((:::)) import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.FundamentalTypes (Bool32(..)) import Vulkan.Core10.Handles (CommandBuffer) import Vulkan.Core10.Handles (CommandBuffer(..)) import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) import Vulkan.Core10.Handles (CommandBuffer_T)-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBiasEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLogicOpEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPatchControlPointsEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveRestartEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizerDiscardEnableEXT)) import Vulkan.Core10.Enums.LogicOp (LogicOp) import Vulkan.Core10.Enums.LogicOp (LogicOp(..)) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_BIAS_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -193,7 +219,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdSetPatchControlPointsEXT-None-04873# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints> --     feature /must/ be enabled -- -- -   #VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874#@@ -258,170 +284,6 @@ #if !defined(SAFE_FOREIGN_CALLS)   unsafe #endif-  "dynamic" mkVkCmdSetRasterizerDiscardEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetRasterizerDiscardEnableEXT - Control whether primitives are--- discarded before the rasterization stage dynamically for a command--- buffer------ = Description------ This command sets the discard enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-None-04871# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-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-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetRasterizerDiscardEnableEXT :: forall io-                                  . (MonadIO io)-                                 => -- | @commandBuffer@ is the command buffer into which the command will be-                                    -- recorded.-                                    CommandBuffer-                                 -> -- | @rasterizerDiscardEnable@ controls whether primitives are discarded-                                    -- immediately before the rasterization stage.-                                    ("rasterizerDiscardEnable" ::: Bool)-                                 -> io ()-cmdSetRasterizerDiscardEnableEXT commandBuffer rasterizerDiscardEnable = liftIO $ do-  let vkCmdSetRasterizerDiscardEnableEXTPtr = pVkCmdSetRasterizerDiscardEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetRasterizerDiscardEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizerDiscardEnableEXT is null" Nothing Nothing-  let vkCmdSetRasterizerDiscardEnableEXT' = mkVkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXTPtr-  traceAroundEvent "vkCmdSetRasterizerDiscardEnableEXT" (vkCmdSetRasterizerDiscardEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (rasterizerDiscardEnable)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetDepthBiasEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthBiasEnableEXT - Control whether to bias fragment depth--- values dynamically for a command buffer------ = Description------ This command sets the depth bias enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthBiasEnableEXT-None-04872# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetDepthBiasEnableEXT-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-vkCmdSetDepthBiasEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBiasEnableEXT :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command will be-                            -- recorded.-                            CommandBuffer-                         -> -- | @depthBiasEnable@ controls whether to bias fragment depth values.-                            ("depthBiasEnable" ::: Bool)-                         -> io ()-cmdSetDepthBiasEnableEXT commandBuffer depthBiasEnable = liftIO $ do-  let vkCmdSetDepthBiasEnableEXTPtr = pVkCmdSetDepthBiasEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetDepthBiasEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBiasEnableEXT is null" Nothing Nothing-  let vkCmdSetDepthBiasEnableEXT' = mkVkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXTPtr-  traceAroundEvent "vkCmdSetDepthBiasEnableEXT" (vkCmdSetDepthBiasEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBiasEnable)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif   "dynamic" mkVkCmdSetLogicOpEXT   :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ()) -> Ptr CommandBuffer_T -> LogicOp -> IO () @@ -441,7 +303,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdSetLogicOpEXT-None-04867# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -500,90 +362,30 @@   pure $ ()  -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetPrimitiveRestartEnableEXT-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()+-- No documentation found for TopLevel "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT"+pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE --- | vkCmdSetPrimitiveRestartEnableEXT - Set primitive assembly restart state--- dynamically for a command buffer------ = Description------ This command sets the primitive restart enable for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-None-04866# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-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-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetPrimitiveRestartEnableEXT :: forall io-                                 . (MonadIO io)-                                => -- | @commandBuffer@ is the command buffer into which the command will be-                                   -- recorded.-                                   CommandBuffer-                                -> -- | @primitiveRestartEnable@ controls whether a special vertex index value-                                   -- is treated as restarting the assembly of primitives. It behaves in the-                                   -- same way as-                                   -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@-                                   ("primitiveRestartEnable" ::: Bool)-                                -> io ()-cmdSetPrimitiveRestartEnableEXT commandBuffer primitiveRestartEnable = liftIO $ do-  let vkCmdSetPrimitiveRestartEnableEXTPtr = pVkCmdSetPrimitiveRestartEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetPrimitiveRestartEnableEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveRestartEnableEXT is null" Nothing Nothing-  let vkCmdSetPrimitiveRestartEnableEXT' = mkVkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXTPtr-  traceAroundEvent "vkCmdSetPrimitiveRestartEnableEXT" (vkCmdSetPrimitiveRestartEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (primitiveRestartEnable)))-  pure $ () +-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = DYNAMIC_STATE_DEPTH_BIAS_ENABLE ++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT"+pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE+++-- No documentation found for TopLevel "vkCmdSetRasterizerDiscardEnableEXT"+cmdSetRasterizerDiscardEnableEXT = cmdSetRasterizerDiscardEnable+++-- No documentation found for TopLevel "vkCmdSetDepthBiasEnableEXT"+cmdSetDepthBiasEnableEXT = cmdSetDepthBiasEnable+++-- No documentation found for TopLevel "vkCmdSetPrimitiveRestartEnableEXT"+cmdSetPrimitiveRestartEnableEXT = cmdSetPrimitiveRestartEnable++ -- | VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - Structure describing -- what extended dynamic state can be used --@@ -614,11 +416,11 @@   { -- | #features-extendedDynamicState2# @extendedDynamicState2@ indicates that     -- the implementation supports the following dynamic states:     ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'     ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'     ---    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'     extendedDynamicState2 :: Bool   , -- | #features-extendedDynamicState2LogicOp# @extendedDynamicState2LogicOp@     -- indicates that the implementation supports the following dynamic state:
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Vikram Kushwaha@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2021-04-12 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -78,20 +87,32 @@ -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     -   'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' -- --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' -- --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     -   'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' -----     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     -   'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The dynamic state enumerants+-- 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',+-- 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT', and+-- 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'; and the corresponding+-- entry points in this extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. The enumerants and entry points for dynamic logic+-- operation and patch control points are not promoted, nor is the feature+-- structure. Extension interfaces that were promoted remain available as+-- aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2021-04-12 (Vikram Kushwaha)@@ -108,7 +129,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs view
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_dma_buf Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_dma_buf Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -165,7 +165,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -323,7 +323,7 @@ -- continue to access the memory through the host pointer but it is the -- application’s responsibility to synchronize device and non-device access -- to the payload as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-hostaccess Host Access to Device Memory Objects>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess Host Access to Device Memory Objects>. -- -- Applications /can/ import the same payload into multiple instances of -- Vulkan and multiple times into a given Vulkan instance. However,
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot view
@@ -165,7 +165,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_filter_cubic.hs view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs view
@@ -153,19 +153,19 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT> -- -- == Version History --@@ -186,7 +186,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -197,9 +197,6 @@                                                       , pattern EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION                                                       , EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME                                                       , pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME-                                                      , FormatFeatureFlagBits2KHR(..)-                                                      , FormatFeatureFlags2KHR-                                                      , Flags64                                                       ) where  import Foreign.Marshal.Alloc (allocaBytes)@@ -228,9 +225,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) -- | VkPhysicalDeviceFragmentDensityMapFeaturesEXT - Structure describing -- fragment density map features that can be supported by an implementation --@@ -278,9 +272,9 @@     -- implementation supports regular non-subsampled image attachments with     -- fragment density map render passes. If this feature is not enabled,     -- render passes with a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>     -- /must/ only have-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-subsamplesampler subsampled attachments>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-subsamplesampler subsampled attachments>     -- bound.     fragmentDensityMapNonSubsampledImages :: Bool   }@@ -355,7 +349,7 @@ data PhysicalDeviceFragmentDensityMapPropertiesEXT = PhysicalDeviceFragmentDensityMapPropertiesEXT   { -- | #limits-minFragmentDensityTexelSize# @minFragmentDensityTexelSize@ is     -- the minimum-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-fragment-density-texel-size fragment density texel size>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-fragment-density-texel-size fragment density texel size>.     minFragmentDensityTexelSize :: Extent2D   , -- | #limits-maxFragmentDensityTexelSize# @maxFragmentDensityTexelSize@ is     -- the maximum fragment density texel size.
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot view
@@ -153,19 +153,19 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT> -- -- == Version History --@@ -186,7 +186,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs view
@@ -131,9 +131,9 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == Version History --@@ -149,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot view
@@ -131,9 +131,9 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == Version History --@@ -149,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs view
@@ -101,11 +101,11 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT> -- -- == Version History --@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot view
@@ -101,11 +101,11 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT> -- -- == Version History --@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -251,7 +251,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot view
@@ -251,7 +251,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_global_priority.hs view
@@ -21,6 +21,10 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to @VK_KHR_global_priority@ extension+-- -- [__Contact__] -- --     -   Andres Rodriguez@@ -50,7 +54,7 @@ -- cases it may be useful to extend this concept to a system-wide scope. -- This extension provides a mechanism for callers to set their system-wide -- priority. The default queue priority is--- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.+-- 'Vulkan.Extensions.VK_KHR_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'. -- -- The driver implementation will attempt to skew hardware resource -- allocation in favour of the higher-priority task. Therefore,@@ -65,9 +69,9 @@ -- Abuse of this feature may result in starving the rest of the system from -- hardware resources. Therefore, the driver implementation may deny -- requests to acquire a priority above the default priority--- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have--- sufficient privileges. In this scenario--- 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT' is returned.+-- ('Vulkan.Extensions.VK_KHR_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT')+-- if the caller does not have sufficient privileges. In this scenario+-- 'ERROR_NOT_PERMITTED_EXT' is returned. -- -- The driver implementation may fail the queue allocation request if -- resources required to complete the operation have been exhausted (either@@ -92,11 +96,11 @@ -- -- -   Extending 'Vulkan.Core10.Enums.Result.Result': -----     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT'+--     -   'ERROR_NOT_PERMITTED_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT' -- -- == Version History --@@ -115,168 +119,43 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_global_priority 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_global_priority  ( DeviceQueueGlobalPriorityCreateInfoEXT(..)-                                                 , QueueGlobalPriorityEXT( QUEUE_GLOBAL_PRIORITY_LOW_EXT-                                                                         , QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT-                                                                         , QUEUE_GLOBAL_PRIORITY_HIGH_EXT-                                                                         , QUEUE_GLOBAL_PRIORITY_REALTIME_EXT-                                                                         , ..-                                                                         )+module Vulkan.Extensions.VK_EXT_global_priority  ( pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT+                                                 , pattern ERROR_NOT_PERMITTED_EXT+                                                 , QueueGlobalPriorityEXT+                                                 , DeviceQueueGlobalPriorityCreateInfoEXT                                                  , EXT_GLOBAL_PRIORITY_SPEC_VERSION                                                  , pattern EXT_GLOBAL_PRIORITY_SPEC_VERSION                                                  , EXT_GLOBAL_PRIORITY_EXTENSION_NAME                                                  , pattern EXT_GLOBAL_PRIORITY_EXTENSION_NAME+                                                 , DeviceQueueGlobalPriorityCreateInfoKHR(..)+                                                 , QueueGlobalPriorityKHR(..)                                                  ) where -import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showsPrec)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero)-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Data.Int (Int32)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Kind (Type)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT))--- | VkDeviceQueueGlobalPriorityCreateInfoEXT - Specify a system wide--- priority------ = Description------ A queue created without specifying--- 'DeviceQueueGlobalPriorityCreateInfoEXT' will default to--- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,--- 'QueueGlobalPriorityEXT',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoEXT-  { -- | @globalPriority@ is the system-wide priority associated to this queue as-    -- specified by 'QueueGlobalPriorityEXT'-    ---    -- #VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-globalPriority-parameter#-    -- @globalPriority@ /must/ be a valid 'QueueGlobalPriorityEXT' value-    globalPriority :: QueueGlobalPriorityEXT }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DeviceQueueGlobalPriorityCreateInfoEXT)-#endif-deriving instance Show DeviceQueueGlobalPriorityCreateInfoEXT+import Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR)+import Vulkan.Extensions.VK_KHR_global_priority (QueueGlobalPriorityKHR)+import Vulkan.Core10.Enums.Result (Result(ERROR_NOT_PERMITTED_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR))+import Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR(..))+import Vulkan.Extensions.VK_KHR_global_priority (QueueGlobalPriorityKHR(..))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR -instance ToCStruct DeviceQueueGlobalPriorityCreateInfoEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p DeviceQueueGlobalPriorityCreateInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityEXT)) (globalPriority)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityEXT)) (zero)-    f -instance FromCStruct DeviceQueueGlobalPriorityCreateInfoEXT where-  peekCStruct p = do-    globalPriority <- peek @QueueGlobalPriorityEXT ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityEXT))-    pure $ DeviceQueueGlobalPriorityCreateInfoEXT-             globalPriority+-- No documentation found for TopLevel "VK_ERROR_NOT_PERMITTED_EXT"+pattern ERROR_NOT_PERMITTED_EXT = ERROR_NOT_PERMITTED_KHR -instance Storable DeviceQueueGlobalPriorityCreateInfoEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero DeviceQueueGlobalPriorityCreateInfoEXT where-  zero = DeviceQueueGlobalPriorityCreateInfoEXT-           zero+-- No documentation found for TopLevel "VkQueueGlobalPriorityEXT"+type QueueGlobalPriorityEXT = QueueGlobalPriorityKHR  --- | VkQueueGlobalPriorityEXT - Values specifying a system-wide queue--- priority------ = Description------ Priority values are sorted in ascending order. A comparison operation on--- the enum values can be used to determine the priority order.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,--- 'DeviceQueueGlobalPriorityCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT'-newtype QueueGlobalPriorityEXT = QueueGlobalPriorityEXT Int32-  deriving newtype (Eq, Ord, Storable, Zero)--- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error---- | 'QUEUE_GLOBAL_PRIORITY_LOW_EXT' is below the system default. Useful for--- non-interactive tasks.-pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT      = QueueGlobalPriorityEXT 128--- | 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT' is the system default priority.-pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT   = QueueGlobalPriorityEXT 256--- | 'QUEUE_GLOBAL_PRIORITY_HIGH_EXT' is above the system default.-pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT     = QueueGlobalPriorityEXT 512--- | 'QUEUE_GLOBAL_PRIORITY_REALTIME_EXT' is the highest priority. Useful for--- critical tasks.-pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = QueueGlobalPriorityEXT 1024-{-# complete QUEUE_GLOBAL_PRIORITY_LOW_EXT,-             QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,-             QUEUE_GLOBAL_PRIORITY_HIGH_EXT,-             QUEUE_GLOBAL_PRIORITY_REALTIME_EXT :: QueueGlobalPriorityEXT #-}--conNameQueueGlobalPriorityEXT :: String-conNameQueueGlobalPriorityEXT = "QueueGlobalPriorityEXT"--enumPrefixQueueGlobalPriorityEXT :: String-enumPrefixQueueGlobalPriorityEXT = "QUEUE_GLOBAL_PRIORITY_"--showTableQueueGlobalPriorityEXT :: [(QueueGlobalPriorityEXT, String)]-showTableQueueGlobalPriorityEXT =-  [ (QUEUE_GLOBAL_PRIORITY_LOW_EXT     , "LOW_EXT")-  , (QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT  , "MEDIUM_EXT")-  , (QUEUE_GLOBAL_PRIORITY_HIGH_EXT    , "HIGH_EXT")-  , (QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, "REALTIME_EXT")-  ]--instance Show QueueGlobalPriorityEXT where-  showsPrec = enumShowsPrec enumPrefixQueueGlobalPriorityEXT-                            showTableQueueGlobalPriorityEXT-                            conNameQueueGlobalPriorityEXT-                            (\(QueueGlobalPriorityEXT x) -> x)-                            (showsPrec 11)--instance Read QueueGlobalPriorityEXT where-  readPrec = enumReadPrec enumPrefixQueueGlobalPriorityEXT-                          showTableQueueGlobalPriorityEXT-                          conNameQueueGlobalPriorityEXT-                          QueueGlobalPriorityEXT+-- No documentation found for TopLevel "VkDeviceQueueGlobalPriorityCreateInfoEXT"+type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR   type EXT_GLOBAL_PRIORITY_SPEC_VERSION = 2
− src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot
@@ -1,134 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_global_priority - device extension------ == VK_EXT_global_priority------ [__Name String__]---     @VK_EXT_global_priority@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     175------ [__Revision__]---     2------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------ [__Contact__]------     -   Andres Rodriguez---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_global_priority] @lostgoat%0A<<Here describe the issue or question you have about the VK_EXT_global_priority extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2017-10-06------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Andres Rodriguez, Valve------     -   Pierre-Loup Griffais, Valve------     -   Dan Ginsburg, Valve------     -   Mitch Singer, AMD------ == Description------ In Vulkan, users can specify device-scope queue priorities. In some--- cases it may be useful to extend this concept to a system-wide scope.--- This extension provides a mechanism for callers to set their system-wide--- priority. The default queue priority is--- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.------ The driver implementation will attempt to skew hardware resource--- allocation in favour of the higher-priority task. Therefore,--- higher-priority work may retain similar latency and throughput--- characteristics even if the system is congested with lower priority--- work.------ The global priority level of a queue shall take precedence over the--- per-process queue priority--- ('Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@).------ Abuse of this feature may result in starving the rest of the system from--- hardware resources. Therefore, the driver implementation may deny--- requests to acquire a priority above the default priority--- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have--- sufficient privileges. In this scenario--- 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT' is returned.------ The driver implementation may fail the queue allocation request if--- resources required to complete the operation have been exhausted (either--- by the same process or a different process). In this scenario--- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.------ == New Structures------ -   Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo':------     -   'DeviceQueueGlobalPriorityCreateInfoEXT'------ == New Enums------ -   'QueueGlobalPriorityEXT'------ == New Enum Constants------ -   'EXT_GLOBAL_PRIORITY_EXTENSION_NAME'------ -   'EXT_GLOBAL_PRIORITY_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.Result.Result':------     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT'------ == Version History------ -   Revision 2, 2017-11-03 (Andres Rodriguez)------     -   Fixed VkQueueGlobalPriorityEXT missing _EXT suffix------ -   Revision 1, 2017-10-06 (Andres Rodriguez)------     -   First version.------ == See Also------ 'DeviceQueueGlobalPriorityCreateInfoEXT', 'QueueGlobalPriorityEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority 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_global_priority  (DeviceQueueGlobalPriorityCreateInfoEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DeviceQueueGlobalPriorityCreateInfoEXT--instance ToCStruct DeviceQueueGlobalPriorityCreateInfoEXT-instance Show DeviceQueueGlobalPriorityCreateInfoEXT--instance FromCStruct DeviceQueueGlobalPriorityCreateInfoEXT-
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs view
@@ -25,6 +25,10 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to @VK_KHR_global_priority@ extension+-- -- [__Contact__] -- --     -   Yiwei Zhang@@ -76,9 +80,9 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT'+--     -   'STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT' -- -- == Issues --@@ -113,222 +117,55 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_global_priority_query 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_global_priority_query  ( PhysicalDeviceGlobalPriorityQueryFeaturesEXT(..)-                                                       , QueueFamilyGlobalPriorityPropertiesEXT(..)+module Vulkan.Extensions.VK_EXT_global_priority_query  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT+                                                       , pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT+                                                       , pattern MAX_GLOBAL_PRIORITY_SIZE_EXT+                                                       , PhysicalDeviceGlobalPriorityQueryFeaturesEXT+                                                       , QueueFamilyGlobalPriorityPropertiesEXT                                                        , EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION                                                        , pattern EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION                                                        , EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME                                                        , pattern EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME-                                                       , QueueGlobalPriorityEXT(..)-                                                       , MAX_GLOBAL_PRIORITY_SIZE_EXT-                                                       , pattern MAX_GLOBAL_PRIORITY_SIZE_EXT+                                                       , PhysicalDeviceGlobalPriorityQueryFeaturesKHR(..)+                                                       , QueueFamilyGlobalPriorityPropertiesKHR(..)+                                                       , QueueGlobalPriorityKHR(..)+                                                       , MAX_GLOBAL_PRIORITY_SIZE_KHR+                                                       , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR                                                        ) where -import Vulkan.CStruct.Utils (FixedArray)-import Control.Monad (unless)-import Foreign.Marshal.Alloc (allocaBytes)-import GHC.IO (throwIO)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Data.Vector (generateM)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.CStruct.Utils (lowerArrayPtr)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_EXT)-import Vulkan.Extensions.VK_EXT_global_priority (QueueGlobalPriorityEXT)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_EXT)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT))-import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_EXT)-import Vulkan.Extensions.VK_EXT_global_priority (QueueGlobalPriorityEXT(..))-import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_EXT)--- | VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT - Structure describing--- whether global priority query can be supported by an implementation------ = Members------ The members of the 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT'--- structure describe the following features:------ = Description------ If the 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT' 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. 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT' /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_global_priority_query VK_EXT_global_priority_query>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesEXT-  { -- | #features-globalPriorityQuery# @globalPriorityQuery@ indicates whether-    -- the implementation supports the ability to query global queue-    -- priorities.-    globalPriorityQuery :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceGlobalPriorityQueryFeaturesEXT+import Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)+import Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR)+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR))+import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR(..))+import Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR(..))+import Vulkan.Extensions.VK_KHR_global_priority (QueueGlobalPriorityKHR(..))+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR -instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceGlobalPriorityQueryFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (globalPriorityQuery))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT where-  peekCStruct p = do-    globalPriorityQuery <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceGlobalPriorityQueryFeaturesEXT-             (bool32ToBool globalPriorityQuery)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR -instance Storable PhysicalDeviceGlobalPriorityQueryFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceGlobalPriorityQueryFeaturesEXT where-  zero = PhysicalDeviceGlobalPriorityQueryFeaturesEXT-           zero+-- No documentation found for TopLevel "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"+pattern MAX_GLOBAL_PRIORITY_SIZE_EXT = MAX_GLOBAL_PRIORITY_SIZE_KHR  --- | VkQueueFamilyGlobalPriorityPropertiesEXT - Return structure for queue--- family global priority information query------ = Description------ The valid elements of @priorities@ /must/ not contain any duplicate--- values.------ The valid elements of @priorities@ /must/ be a continuous sequence of--- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums--- in the ascending order.------ Note------ For example, returning @priorityCount@ as 3 with supported @priorities@--- as--- 'Vulkan.Extensions.VK_EXT_global_priority.QUEUE_GLOBAL_PRIORITY_LOW_EXT',--- 'Vulkan.Extensions.VK_EXT_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_global_priority.QUEUE_GLOBAL_PRIORITY_REALTIME_EXT'--- is not allowed.------ == Valid Usage (Implicit)------ -   #VUID-VkQueueFamilyGlobalPriorityPropertiesEXT-sType-sType# @sType@---     /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT'------ -   #VUID-VkQueueFamilyGlobalPriorityPropertiesEXT-priorities-parameter#---     Any given element of @priorities@ /must/ be a valid---     'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT'---     value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>,--- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesEXT-  { -- | @priorityCount@ is the number of supported global queue priorities in-    -- this queue family, and it /must/ be greater than 0.-    priorityCount :: Word32-  , -- | @priorities@ is an array of-    -- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'-    -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums-    -- representing all supported global queue priorities in this queue family.-    -- The first @priorityCount@ elements of the array will be valid.-    priorities :: Vector QueueGlobalPriorityEXT-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (QueueFamilyGlobalPriorityPropertiesEXT)-#endif-deriving instance Show QueueFamilyGlobalPriorityPropertiesEXT+-- No documentation found for TopLevel "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT"+type PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR -instance ToCStruct QueueFamilyGlobalPriorityPropertiesEXT where-  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p QueueFamilyGlobalPriorityPropertiesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (priorityCount)-    unless ((Data.Vector.length $ (priorities)) <= MAX_GLOBAL_PRIORITY_SIZE_EXT) $-      throwIO $ IOError Nothing InvalidArgument "" "priorities is too long, a maximum of MAX_GLOBAL_PRIORITY_SIZE_EXT elements are allowed" Nothing Nothing-    Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_EXT QueueGlobalPriorityEXT)))) `plusPtr` (4 * (i)) :: Ptr QueueGlobalPriorityEXT) (e)) (priorities)-    f-  cStructSize = 88-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    f -instance FromCStruct QueueFamilyGlobalPriorityPropertiesEXT where-  peekCStruct p = do-    priorityCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    priorities <- generateM (MAX_GLOBAL_PRIORITY_SIZE_EXT) (\i -> peek @QueueGlobalPriorityEXT (((lowerArrayPtr @QueueGlobalPriorityEXT ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_EXT QueueGlobalPriorityEXT)))) `advancePtrBytes` (4 * (i)) :: Ptr QueueGlobalPriorityEXT)))-    pure $ QueueFamilyGlobalPriorityPropertiesEXT-             priorityCount priorities--instance Storable QueueFamilyGlobalPriorityPropertiesEXT where-  sizeOf ~_ = 88-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero QueueFamilyGlobalPriorityPropertiesEXT where-  zero = QueueFamilyGlobalPriorityPropertiesEXT-           zero-           mempty+-- No documentation found for TopLevel "VkQueueFamilyGlobalPriorityPropertiesEXT"+type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR   type EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot
@@ -1,142 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_global_priority_query - device extension------ == VK_EXT_global_priority_query------ [__Name String__]---     @VK_EXT_global_priority_query@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     389------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_EXT_global_priority@------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Yiwei Zhang---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_global_priority_query] @zhangyiwei%0A<<Here describe the issue or question you have about the VK_EXT_global_priority_query extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2021-03-29------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Yiwei Zhang, Google------ == Description------ This device extension allows applications to query the global queue--- priorities supported by a queue family. It allows implementations to--- report which global priority levels are treated differently by the--- implementation, instead of silently mapping multiple requested global--- priority levels to the same internal priority, or using device creation--- failure to signal that a requested priority is not supported. It is--- intended primarily for use by system integration along with certain--- platform-specific priority enforcement rules.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceGlobalPriorityQueryFeaturesEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':------     -   'QueueFamilyGlobalPriorityPropertiesEXT'------ == New Enum Constants------ -   'EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME'------ -   'EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION'------ -   'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT'------ == Issues------ 1) Can we additionally query whether a caller is permitted to acquire a--- specific global queue priority in this extension?------ __RESOLVED__: No. Whether a caller has enough privilege goes with the--- OS, and the Vulkan driver cannot really guarantee that the privilege--- will not change in between this query and the actual queue creation--- call.------ 2) If more than 1 queue using global priority is requested, is there a--- good way to know which queue is failing the device creation?------ __RESOLVED__: No. There is not a good way at this moment, and it is also--- not quite actionable for the applications to know that because the--- information may not be accurate. Queue creation can fail because of--- runtime constraints like insufficient privilege or lack of resource, and--- the failure is not necessarily tied to that particular queue--- configuration requested.------ == Version History------ -   Revision 1, 2021-03-29 (Yiwei Zhang)------ == See Also------ 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT',--- 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT',--- 'QueueFamilyGlobalPriorityPropertiesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query 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_global_priority_query  ( PhysicalDeviceGlobalPriorityQueryFeaturesEXT-                                                       , QueueFamilyGlobalPriorityPropertiesEXT-                                                       ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceGlobalPriorityQueryFeaturesEXT--instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT-instance Show PhysicalDeviceGlobalPriorityQueryFeaturesEXT--instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT---data QueueFamilyGlobalPriorityPropertiesEXT--instance ToCStruct QueueFamilyGlobalPriorityPropertiesEXT-instance Show QueueFamilyGlobalPriorityPropertiesEXT--instance FromCStruct QueueFamilyGlobalPriorityPropertiesEXT-
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot view
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_headless_surface.hs view
@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -226,7 +226,7 @@                             HeadlessSurfaceCreateInfoEXT                          -> -- | @pAllocator@ is the allocator used for host memory allocated for the                             -- surface object when there is no more specific allocator available (see-                            -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                            -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                             ("allocator" ::: Maybe AllocationCallbacks)                          -> io (SurfaceKHR) createHeadlessSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot view
@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_host_query_reset.hs view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_query_reset Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_host_query_reset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs view
@@ -67,9 +67,9 @@ -- graphics, video, and display APIs. -- -- Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^.+-- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^. -- Unlike the EGL extensions, this extension does not require the use of a -- specific handle type (such as a dma_buf) for external memory and -- provides more explicit control of image creation.@@ -250,33 +250,33 @@ -- == Prior Art -- -- Extension--- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^+-- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^ -- introduced the ability to create an @EGLImage@ by importing for each -- plane a dma_buf, offset, and row pitch. -- -- Later, extension--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- introduced the ability to query which combination of formats and -- /modifiers/ the implementation supports and to specify /modifiers/ -- during creation of the @EGLImage@. -- -- Extension--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^+-- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^ -- is the inverse of @EGL_EXT_image_dma_buf_import_modifiers@. -- -- The Linux kernel modesetting API (KMS), when configuring the display’s -- framebuffer with @struct--- drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- allows one to specify the frambuffer’s /modifier/ as well as a per-plane -- memory handle, offset, and row pitch. -- -- GBM, a graphics buffer manager for Linux, allows creation of a @gbm_bo@ -- (that is, a graphics /buffer object/) by importing data similar to that -- in--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^;+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^; -- and symmetrically allows exporting the same data from the @gbm_bo@. See -- the references to /modifier/ and /plane/ in--- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^.+-- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^. -- -- == New Commands --@@ -371,10 +371,10 @@ -- 'Vulkan.Core10.Handles.Image'. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- allows defining one /modifier/ per plane. However, developers of the GBM -- and kernel APIs concede it was a mistake. Beginning in Linux 4.10, the -- kernel requires that the application provide the same DRM format@@ -397,10 +397,10 @@ -- /must/ be 0. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- omits from the API the size of each plane. Instead, the APIs infer each -- plane’s size from the import parameters, which include the image’s pixel -- format and a dma_buf, offset, and row pitch for each plane.@@ -545,7 +545,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -562,9 +562,6 @@                                                            , pattern EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION                                                            , EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME                                                            , pattern EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME-                                                           , FormatFeatureFlagBits2KHR(..)-                                                           , FormatFeatureFlags2KHR-                                                           , Flags64                                                            ) where  import Vulkan.Internal.Utils (traceAroundEvent)@@ -610,7 +607,7 @@ import Vulkan.Dynamic (DeviceCmds(pVkGetImageDrmFormatModifierPropertiesEXT)) import Vulkan.Core10.Handles (Device_T) import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Handles (Image(..)) import Vulkan.Core10.Enums.Result (Result)@@ -626,9 +623,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -771,7 +765,7 @@ -- An image’s /memory planecount/ (as returned by -- @drmFormatModifierPlaneCount@) is distinct from its /format planecount/ -- (in the sense of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- Y′CBCR formats). In -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', each -- @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ represents a /memory plane/ and@@ -798,7 +792,7 @@ -- not necessarily contiguous. -- -- If an image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>, -- then the partition is the same for /memory planes/ and for /format -- planes/. Therefore, if the returned @drmFormatModifier@ is -- @DRM_FORMAT_MOD_LINEAR@, then @drmFormatModifierPlaneCount@ /must/ equal@@ -808,7 +802,7 @@ -- returned in the same @pNext@ chain. -- -- If an image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then the partition of the image’s __memory__ into /memory planes/ is -- implementation-specific and /may/ be unrelated to the partition of the -- image’s __content__ into /format planes/. For example, consider an image@@ -1217,7 +1211,7 @@ -- 'getImageDrmFormatModifierPropertiesEXT' data ImageDrmFormatModifierPropertiesEXT = ImageDrmFormatModifierPropertiesEXT   { -- | @drmFormatModifier@ returns the image’s-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.     drmFormatModifier :: Word64 }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -1342,7 +1336,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>, -- 'DrmFormatModifierPropertiesList2EXT',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2' data DrmFormatModifierProperties2EXT = DrmFormatModifierProperties2EXT   { -- | @drmFormatModifier@ is a /Linux DRM format modifier/.     drmFormatModifier :: Word64@@ -1352,10 +1346,10 @@     -- below.     drmFormatModifierPlaneCount :: Word32   , -- | @drmFormatModifierTilingFeatures@ is a bitmask of-    -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'-    -- that are supported by any image created with @format@ and+    -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2' that+    -- are supported by any image created with @format@ and     -- @drmFormatModifier@.-    drmFormatModifierTilingFeatures :: FormatFeatureFlags2KHR+    drmFormatModifierTilingFeatures :: FormatFeatureFlags2   }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -1368,21 +1362,21 @@   pokeCStruct p DrmFormatModifierProperties2EXT{..} f = do     poke ((p `plusPtr` 0 :: Ptr Word64)) (drmFormatModifier)     poke ((p `plusPtr` 8 :: Ptr Word32)) (drmFormatModifierPlaneCount)-    poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR)) (drmFormatModifierTilingFeatures)+    poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) (drmFormatModifierTilingFeatures)     f   cStructSize = 24   cStructAlignment = 8   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr Word64)) (zero)     poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR)) (zero)+    poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) (zero)     f  instance FromCStruct DrmFormatModifierProperties2EXT where   peekCStruct p = do     drmFormatModifier <- peek @Word64 ((p `plusPtr` 0 :: Ptr Word64))     drmFormatModifierPlaneCount <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))-    drmFormatModifierTilingFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR))+    drmFormatModifierTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2))     pure $ DrmFormatModifierProperties2EXT              drmFormatModifier drmFormatModifierPlaneCount drmFormatModifierTilingFeatures 
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot view
@@ -67,9 +67,9 @@ -- graphics, video, and display APIs. -- -- Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^.+-- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^. -- Unlike the EGL extensions, this extension does not require the use of a -- specific handle type (such as a dma_buf) for external memory and -- provides more explicit control of image creation.@@ -250,33 +250,33 @@ -- == Prior Art -- -- Extension--- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^+-- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^ -- introduced the ability to create an @EGLImage@ by importing for each -- plane a dma_buf, offset, and row pitch. -- -- Later, extension--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- introduced the ability to query which combination of formats and -- /modifiers/ the implementation supports and to specify /modifiers/ -- during creation of the @EGLImage@. -- -- Extension--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^+-- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^ -- is the inverse of @EGL_EXT_image_dma_buf_import_modifiers@. -- -- The Linux kernel modesetting API (KMS), when configuring the display’s -- framebuffer with @struct--- drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- allows one to specify the frambuffer’s /modifier/ as well as a per-plane -- memory handle, offset, and row pitch. -- -- GBM, a graphics buffer manager for Linux, allows creation of a @gbm_bo@ -- (that is, a graphics /buffer object/) by importing data similar to that -- in--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^;+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^; -- and symmetrically allows exporting the same data from the @gbm_bo@. See -- the references to /modifier/ and /plane/ in--- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^.+-- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^. -- -- == New Commands --@@ -371,10 +371,10 @@ -- 'Vulkan.Core10.Handles.Image'. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- allows defining one /modifier/ per plane. However, developers of the GBM -- and kernel APIs concede it was a mistake. Beginning in Linux 4.10, the -- kernel requires that the application provide the same DRM format@@ -397,10 +397,10 @@ -- /must/ be 0. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- omits from the API the size of each plane. Instead, the APIs infer each -- plane’s size from the import parameters, which include the image’s pixel -- format and a dma_buf, offset, and row pitch for each plane.@@ -545,7 +545,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_image_robustness.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Graeme Leese@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2020-04-27 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -57,7 +66,7 @@ -- out of bounds reads return R, G, and B values of zero and alpha values -- of either zero or one. Components not present in the image format may be -- set to zero or to values based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>. -- -- == New Structures --@@ -75,8 +84,14 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Issues -- -- 1.  How does this extension differ from VK_EXT_robustness2?@@ -105,112 +120,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_robustness Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_robustness 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_image_robustness  ( PhysicalDeviceImageRobustnessFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_image_robustness  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT+                                                  , PhysicalDeviceImageRobustnessFeaturesEXT                                                   , EXT_IMAGE_ROBUSTNESS_SPEC_VERSION                                                   , pattern EXT_IMAGE_ROBUSTNESS_SPEC_VERSION                                                   , EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME                                                   , pattern EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME                                                   ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT))--- | VkPhysicalDeviceImageRobustnessFeaturesEXT - Structure describing the--- out-of-bounds behavior for an implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceImageRobustnessFeaturesEXT' 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. 'PhysicalDeviceImageRobustnessFeaturesEXT' /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_image_robustness VK_EXT_image_robustness>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeaturesEXT-  { -- | #features-robustImageAccess# @robustImageAccess@ indicates whether image-    -- accesses are tightly bounds-checked against the dimensions of the image-    -- view.-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-input-validation Invalid texels>-    -- resulting from out of bounds image loads will be replaced as described-    -- in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>,-    -- with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A-    -- components based on the format.-    robustImageAccess :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceImageRobustnessFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceImageRobustnessFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES -instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceImageRobustnessFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT where-  peekCStruct p = do-    robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceImageRobustnessFeaturesEXT-             (bool32ToBool robustImageAccess)--instance Storable PhysicalDeviceImageRobustnessFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceImageRobustnessFeaturesEXT where-  zero = PhysicalDeviceImageRobustnessFeaturesEXT-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceImageRobustnessFeaturesEXT"+type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures   type EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
@@ -1,124 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_image_robustness - device extension------ == VK_EXT_image_robustness------ [__Name String__]---     @VK_EXT_image_robustness@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     336------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Graeme Leese---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_robustness] @gnl21%0A<<Here describe the issue or question you have about the VK_EXT_image_robustness extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-04-27------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Graeme Leese, Broadcom------     -   Jan-Harald Fredriksen, ARM------     -   Jeff Bolz, NVIDIA------     -   Spencer Fricke, Samsung------     -   Courtney Goeltzenleuchter, Google------     -   Slawomir Cygan, Intel------ == Description------ This extension adds stricter requirements for how out of bounds reads--- from images are handled. Rather than returning undefined values, most--- out of bounds reads return R, G, and B values of zero and alpha values--- of either zero or one. Components not present in the image format may be--- set to zero or to values based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceImageRobustnessFeaturesEXT'------ == New Enum Constants------ -   'EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME'------ -   'EXT_IMAGE_ROBUSTNESS_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT'------ == Issues------ 1.  How does this extension differ from VK_EXT_robustness2?------ The guarantees provided by this extension are a subset of those provided--- by the robustImageAccess2 feature of VK_EXT_robustness2. Where this--- extension allows return values of (0, 0, 0, 0) or (0, 0, 0, 1),--- robustImageAccess2 requires that a particular value dependent on the--- image format be returned. This extension provides no guarantees about--- the values returned for an access to an invalid Lod.------ == Examples------ None.------ == Version History------ -   Revision 1, 2020-04-27 (Graeme Leese)------     -   Initial draft------ == See Also------ 'PhysicalDeviceImageRobustnessFeaturesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_robustness 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_image_robustness  (PhysicalDeviceImageRobustnessFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceImageRobustnessFeaturesEXT--instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT-instance Show PhysicalDeviceImageRobustnessFeaturesEXT--instance FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs view
@@ -53,9 +53,9 @@ -- == Description -- -- This extension allows applications to clamp the minimum LOD value during--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations> -- with a given 'Vulkan.Core10.Handles.ImageView' by -- 'ImageViewMinLodCreateInfoEXT'::@minLod@. --@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -171,9 +171,9 @@ data PhysicalDeviceImageViewMinLodFeaturesEXT = PhysicalDeviceImageViewMinLodFeaturesEXT   { -- | #features-minLod# @minLod@ indicates whether the implementation supports     -- clamping the minimum LOD value during-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>     -- with a given 'Vulkan.Core10.Handles.ImageView' by     -- 'ImageViewMinLodCreateInfoEXT'::@minLod@.     minLod :: Bool }@@ -221,7 +221,7 @@ -- == Valid Usage -- -- -   #VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-minLod minLod>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-minLod minLod> --     feature is not enabled, @minLod@ /must/ be @0.0@. -- -- -   #VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456# @minLod@ /must/
src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot view
@@ -53,9 +53,9 @@ -- == Description -- -- This extension allows applications to clamp the minimum LOD value during--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations> -- with a given 'Vulkan.Core10.Handles.ImageView' by -- 'ImageViewMinLodCreateInfoEXT'::@minLod@. --@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs view
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot view
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs view
@@ -25,6 +25,11 @@ -- --     -   Requires @VK_KHR_maintenance1@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Daniel Rakos@@ -35,6 +40,10 @@ -- [__Last Modified Date__] --     2018-08-01 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -86,18 +95,30 @@ -- -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType': -----     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     -   'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT'+--     -   'STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- Vulkan 1.3 adds+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.3-new-features additional functionality related to this extension>+-- in the form of the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize>+-- limit.+-- -- == Issues -- -- 1) Do we need a new storage class for inline uniform blocks vs uniform@@ -170,356 +191,69 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_inline_uniform_block 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_inline_uniform_block  ( PhysicalDeviceInlineUniformBlockFeaturesEXT(..)-                                                      , PhysicalDeviceInlineUniformBlockPropertiesEXT(..)-                                                      , WriteDescriptorSetInlineUniformBlockEXT(..)-                                                      , DescriptorPoolInlineUniformBlockCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_inline_uniform_block  ( pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT+                                                      , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT+                                                      , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT+                                                      , pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT+                                                      , pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT+                                                      , PhysicalDeviceInlineUniformBlockFeaturesEXT+                                                      , PhysicalDeviceInlineUniformBlockPropertiesEXT+                                                      , WriteDescriptorSetInlineUniformBlockEXT+                                                      , DescriptorPoolInlineUniformBlockCreateInfoEXT                                                       , EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION                                                       , pattern EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION                                                       , EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME                                                       , pattern EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME                                                       ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT))--- | VkPhysicalDeviceInlineUniformBlockFeaturesEXT - Structure describing--- inline uniform block features that can be supported by an implementation------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceInlineUniformBlockFeaturesEXT' 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. 'PhysicalDeviceInlineUniformBlockFeaturesEXT' /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_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeaturesEXT-  { -- | #features-inlineUniformBlock# @inlineUniformBlock@ indicates whether the-    -- implementation supports inline uniform block descriptors. If this-    -- feature is not enabled,-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'-    -- /must/ not be used.-    inlineUniformBlock :: Bool-  , -- | #features-descriptorBindingInlineUniformBlockUpdateAfterBind#-    -- @descriptorBindingInlineUniformBlockUpdateAfterBind@ indicates whether-    -- the implementation supports updating inline uniform block descriptors-    -- after a set is bound. If this feature is not enabled,-    -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'-    -- /must/ not be used with-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'.-    descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceInlineUniformBlockFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceInlineUniformBlockFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo)+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties)+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock)+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK))+-- No documentation found for TopLevel "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT"+pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK -instance ToCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceInlineUniformBlockFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (inlineUniformBlock))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (descriptorBindingInlineUniformBlockUpdateAfterBind))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_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))-    f -instance FromCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT where-  peekCStruct p = do-    inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    pure $ PhysicalDeviceInlineUniformBlockFeaturesEXT-             (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES -instance Storable PhysicalDeviceInlineUniformBlockFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceInlineUniformBlockFeaturesEXT where-  zero = PhysicalDeviceInlineUniformBlockFeaturesEXT-           zero-           zero+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES  --- | VkPhysicalDeviceInlineUniformBlockPropertiesEXT - Structure describing--- inline uniform block properties that can be supported by an--- implementation------ = Description------ If the 'PhysicalDeviceInlineUniformBlockPropertiesEXT' 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_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockPropertiesEXT-  { -- | #limits-maxInlineUniformBlockSize# @maxInlineUniformBlockSize@ is the-    -- maximum size in bytes of an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>-    -- binding.-    maxInlineUniformBlockSize :: Word32-  , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockPropertiesEXT" "maxPerStageDescriptorInlineUniformBlocks"-    maxPerStageDescriptorInlineUniformBlocks :: Word32-  , -- | #limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#-    -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to-    -- @maxPerStageDescriptorInlineUniformBlocks@ but counts descriptor-    -- bindings from descriptor sets created with or without the-    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'-    -- bit set.-    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32-  , -- | #limits-maxDescriptorSetInlineUniformBlocks#-    -- @maxDescriptorSetInlineUniformBlocks@ is the maximum number of inline-    -- uniform block bindings that /can/ be included in descriptor bindings in-    -- a pipeline layout across all pipeline shader stages and descriptor set-    -- numbers. Descriptor bindings with a descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'-    -- count against this limit. Only descriptor bindings in descriptor set-    -- layouts created without the-    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'-    -- bit set count against this limit.-    maxDescriptorSetInlineUniformBlocks :: Word32-  , -- | #limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks#-    -- @maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ is similar to-    -- @maxDescriptorSetInlineUniformBlocks@ but counts descriptor bindings-    -- from descriptor sets created with or without the-    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'-    -- bit set.-    maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceInlineUniformBlockPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceInlineUniformBlockPropertiesEXT+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK -instance ToCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceInlineUniformBlockPropertiesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockSize)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxPerStageDescriptorInlineUniformBlocks)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)-    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxDescriptorSetInlineUniformBlocks)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindInlineUniformBlocks)-    f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)-    f -instance FromCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT where-  peekCStruct p = do-    maxInlineUniformBlockSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    maxPerStageDescriptorInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))-    maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))-    maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    pure $ PhysicalDeviceInlineUniformBlockPropertiesEXT-             maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO -instance Storable PhysicalDeviceInlineUniformBlockPropertiesEXT where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceInlineUniformBlockPropertiesEXT where-  zero = PhysicalDeviceInlineUniformBlockPropertiesEXT-           zero-           zero-           zero-           zero-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceInlineUniformBlockFeaturesEXT"+type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures  --- | VkWriteDescriptorSetInlineUniformBlockEXT - Structure specifying inline--- uniform block data------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlockEXT-  { -- | @dataSize@ is the number of bytes of inline uniform block data pointed-    -- to by @pData@.-    ---    -- #VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-02222#-    -- @dataSize@ /must/ be an integer multiple of @4@-    ---    -- #VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-arraylength#-    -- @dataSize@ /must/ be greater than @0@-    dataSize :: Word32-  , -- | @pData@ is a pointer to @dataSize@ number of bytes of data to write to-    -- the inline uniform block.-    ---    -- #VUID-VkWriteDescriptorSetInlineUniformBlockEXT-pData-parameter# @pData@-    -- /must/ be a valid pointer to an array of @dataSize@ bytes-    data' :: Ptr ()-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (WriteDescriptorSetInlineUniformBlockEXT)-#endif-deriving instance Show WriteDescriptorSetInlineUniformBlockEXT+-- No documentation found for TopLevel "VkPhysicalDeviceInlineUniformBlockPropertiesEXT"+type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties -instance ToCStruct WriteDescriptorSetInlineUniformBlockEXT where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p WriteDescriptorSetInlineUniformBlockEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (dataSize)-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')-    f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)-    f -instance FromCStruct WriteDescriptorSetInlineUniformBlockEXT where-  peekCStruct p = do-    dataSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))-    pure $ WriteDescriptorSetInlineUniformBlockEXT-             dataSize pData--instance Storable WriteDescriptorSetInlineUniformBlockEXT where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero WriteDescriptorSetInlineUniformBlockEXT where-  zero = WriteDescriptorSetInlineUniformBlockEXT-           zero-           zero+-- No documentation found for TopLevel "VkWriteDescriptorSetInlineUniformBlockEXT"+type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock  --- | VkDescriptorPoolInlineUniformBlockCreateInfoEXT - Structure specifying--- the maximum number of inline uniform block bindings of a newly created--- descriptor pool------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfoEXT-  { -- | @maxInlineUniformBlockBindings@ is the number of inline uniform block-    -- bindings to allocate.-    maxInlineUniformBlockBindings :: Word32 }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DescriptorPoolInlineUniformBlockCreateInfoEXT)-#endif-deriving instance Show DescriptorPoolInlineUniformBlockCreateInfoEXT--instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p DescriptorPoolInlineUniformBlockCreateInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockBindings)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    f--instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT where-  peekCStruct p = do-    maxInlineUniformBlockBindings <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    pure $ DescriptorPoolInlineUniformBlockCreateInfoEXT-             maxInlineUniformBlockBindings--instance Storable DescriptorPoolInlineUniformBlockCreateInfoEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero DescriptorPoolInlineUniformBlockCreateInfoEXT where-  zero = DescriptorPoolInlineUniformBlockCreateInfoEXT-           zero+-- No documentation found for TopLevel "VkDescriptorPoolInlineUniformBlockCreateInfoEXT"+type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo   type EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot
@@ -1,217 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_inline_uniform_block - device extension------ == VK_EXT_inline_uniform_block------ [__Name String__]---     @VK_EXT_inline_uniform_block@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     139------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------     -   Requires @VK_KHR_maintenance1@------ [__Contact__]------     -   Daniel Rakos---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_inline_uniform_block] @aqnuep%0A<<Here describe the issue or question you have about the VK_EXT_inline_uniform_block extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2018-08-01------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Daniel Rakos, AMD------     -   Jeff Bolz, NVIDIA------     -   Slawomir Grajewski, Intel------     -   Neil Henning, Codeplay------ == Description------ This extension introduces the ability to back uniform blocks directly--- with descriptor sets by storing inline uniform data within descriptor--- pool storage. Compared to push constants this new construct allows--- uniform data to be reused across multiple disjoint sets of drawing or--- dispatching commands and /may/ enable uniform data to be accessed with--- fewer indirections compared to uniforms backed by buffer memory.------ == New Structures------ -   Extending 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':------     -   'DescriptorPoolInlineUniformBlockCreateInfoEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceInlineUniformBlockFeaturesEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------     -   'PhysicalDeviceInlineUniformBlockPropertiesEXT'------ -   Extending 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet':------     -   'WriteDescriptorSetInlineUniformBlockEXT'------ == New Enum Constants------ -   'EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME'------ -   'EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':------     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT'------ == Issues------ 1) Do we need a new storage class for inline uniform blocks vs uniform--- blocks?------ __RESOLVED__: No. The @Uniform@ storage class is used to allow the same--- syntax used for both uniform buffers and inline uniform blocks.------ 2) Is the descriptor array index and array size expressed in terms of--- bytes or dwords for inline uniform block descriptors?------ __RESOLVED__: In bytes, but both /must/ be a multiple of 4, similar to--- how push constant ranges are specified. The @descriptorCount@ of--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' thus provides--- the total number of bytes a particular binding with an inline uniform--- block descriptor type can hold, while the @srcArrayElement@,--- @dstArrayElement@, and @descriptorCount@ members of--- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',--- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet', and--- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateEntry'--- (where applicable) specify the byte offset and number of bytes to--- write\/copy to the binding’s backing store. Additionally, the @stride@--- member of--- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateEntry'--- is ignored for inline uniform blocks and a default value of one is used,--- meaning that the data to update inline uniform block bindings with must--- be contiguous in memory.------ 3) What layout rules apply for uniform blocks corresponding to inline--- constants?------ __RESOLVED__: They use the same layout rules as uniform buffers.------ 4) Do we need to add non-uniform indexing features\/properties as--- introduced by @VK_EXT_descriptor_indexing@ for inline uniform blocks?------ __RESOLVED__: No, because inline uniform blocks are not allowed to be--- “arrayed”. A single binding with an inline uniform block descriptor type--- corresponds to a single uniform block instance and the array indices--- inside that binding refer to individual offsets within the uniform block--- (see issue #2). However, this extension does introduce new--- features\/properties about the level of support for update-after-bind--- inline uniform blocks.------ 5) Is the @descriptorBindingVariableDescriptorCount@ feature introduced--- by @VK_EXT_descriptor_indexing@ supported for inline uniform blocks?------ __RESOLVED__: Yes, as long as other inline uniform block specific limits--- are respected.------ 6) Do the robustness guarantees of @robustBufferAccess@ apply to inline--- uniform block accesses?------ __RESOLVED__: No, similarly to push constants, as they are not backed by--- buffer memory like uniform buffers.------ == Version History------ -   Revision 1, 2018-08-01 (Daniel Rakos)------     -   Internal revisions------ == See Also------ 'DescriptorPoolInlineUniformBlockCreateInfoEXT',--- 'PhysicalDeviceInlineUniformBlockFeaturesEXT',--- 'PhysicalDeviceInlineUniformBlockPropertiesEXT',--- 'WriteDescriptorSetInlineUniformBlockEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block 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_inline_uniform_block  ( DescriptorPoolInlineUniformBlockCreateInfoEXT-                                                      , PhysicalDeviceInlineUniformBlockFeaturesEXT-                                                      , PhysicalDeviceInlineUniformBlockPropertiesEXT-                                                      , WriteDescriptorSetInlineUniformBlockEXT-                                                      ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DescriptorPoolInlineUniformBlockCreateInfoEXT--instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT-instance Show DescriptorPoolInlineUniformBlockCreateInfoEXT--instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT---data PhysicalDeviceInlineUniformBlockFeaturesEXT--instance ToCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT-instance Show PhysicalDeviceInlineUniformBlockFeaturesEXT--instance FromCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT---data PhysicalDeviceInlineUniformBlockPropertiesEXT--instance ToCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT-instance Show PhysicalDeviceInlineUniformBlockPropertiesEXT--instance FromCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT---data WriteDescriptorSetInlineUniformBlockEXT--instance ToCStruct WriteDescriptorSetInlineUniformBlockEXT-instance Show WriteDescriptorSetInlineUniformBlockEXT--instance FromCStruct WriteDescriptorSetInlineUniformBlockEXT-
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -127,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -307,19 +307,19 @@ data PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeaturesEXT   { -- | #features-rectangularLines# @rectangularLines@ indicates whether the     -- implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines rectangular line rasterization>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines rectangular line rasterization>.     rectangularLines :: Bool   , -- | #features-bresenhamLines# @bresenhamLines@ indicates whether the     -- implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham-style line rasterization>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham-style line rasterization>.     bresenhamLines :: Bool   , -- | #features-smoothLines# @smoothLines@ indicates whether the     -- implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-smooth smooth line rasterization>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth smooth line rasterization>.     smoothLines :: Bool   , -- | #features-stippledRectangularLines# @stippledRectangularLines@ indicates     -- whether the implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>     -- with 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT' lines, or with     -- 'LINE_RASTERIZATION_MODE_DEFAULT_EXT' lines if     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@@@ -327,12 +327,12 @@     stippledRectangularLines :: Bool   , -- | #features-stippledBresenhamLines# @stippledBresenhamLines@ indicates     -- whether the implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>     -- with 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT' lines.     stippledBresenhamLines :: Bool   , -- | #features-stippledSmoothLines# @stippledSmoothLines@ indicates whether     -- the implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>     -- with 'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT' lines.     stippledSmoothLines :: Bool   }@@ -417,7 +417,7 @@   { -- | #limits-lineSubPixelPrecisionBits# @lineSubPixelPrecisionBits@ is the     -- number of bits of subpixel precision in framebuffer coordinates xf and     -- yf when rasterizing-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines line segments>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines line segments>.     lineSubPixelPrecisionBits :: Word32 }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -470,47 +470,47 @@ -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768# --     If @lineRasterizationMode@ is --     'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rectangularLines rectangularLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLines rectangularLines> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769# --     If @lineRasterizationMode@ is --     'LINE_RASTERIZATION_MODE_BRESENHAM_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770# --     If @lineRasterizationMode@ is --     'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bresenhamLines smoothLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines smoothLines> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771# --     If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and --     @lineRasterizationMode@ is --     'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772# --     If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and --     @lineRasterizationMode@ is 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT', --     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773# --     If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and --     @lineRasterizationMode@ is --     'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines> --     feature /must/ be enabled -- -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774# --     If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and --     @lineRasterizationMode@ is 'LINE_RASTERIZATION_MODE_DEFAULT_EXT', --     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines> --     feature /must/ be enabled and --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'@@ -535,7 +535,7 @@     -- the style of line rasterization.     lineRasterizationMode :: LineRasterizationModeEXT   , -- | @stippledLineEnable@ enables-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>.     stippledLineEnable :: Bool   , -- | @lineStippleFactor@ is the repeat factor used in stippled line     -- rasterization.@@ -608,7 +608,7 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ -- is 'Vulkan.Core10.FundamentalTypes.TRUE', otherwise lines are drawn as -- non-@strictLines@ parallelograms. Both of these modes are defined in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>. pattern LINE_RASTERIZATION_MODE_DEFAULT_EXT            = LineRasterizationModeEXT 0 -- | 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT' specifies lines drawn as if -- they were rectangles extruded from the line@@ -616,12 +616,12 @@ -- | 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT' specifies lines drawn by -- determining which pixel diamonds the line intersects and exits, as -- defined in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham Line Segment Rasterization>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham Line Segment Rasterization>. pattern LINE_RASTERIZATION_MODE_BRESENHAM_EXT          = LineRasterizationModeEXT 2 -- | 'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT' specifies lines drawn -- if they were rectangles extruded from the line, with alpha falloff, as -- defined in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-smooth Smooth Lines>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth Smooth Lines>. pattern LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = LineRasterizationModeEXT 3 {-# complete LINE_RASTERIZATION_MODE_DEFAULT_EXT,              LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot view
@@ -127,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs view
@@ -84,7 +84,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_load_store_op_none Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_load_store_op_none Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -96,9 +96,9 @@                                                     ) where  import Data.String (IsString)-import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE_KHR))+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE)) -- No documentation found for TopLevel "VK_ATTACHMENT_STORE_OP_NONE_EXT"-pattern ATTACHMENT_STORE_OP_NONE_EXT = ATTACHMENT_STORE_OP_NONE_KHR+pattern ATTACHMENT_STORE_OP_NONE_EXT = ATTACHMENT_STORE_OP_NONE   type EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_EXT_memory_budget.hs view
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot view
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_priority.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_metal_surface.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -216,7 +216,7 @@                          MetalSurfaceCreateInfoEXT                       -> -- | @pAllocator@ is the allocator used for host memory allocated for the                          -- surface object when there is no more specific allocator available (see-                         -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                         -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                          ("allocator" ::: Maybe AllocationCallbacks)                       -> io (SurfaceKHR) createMetalSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -225,7 +225,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawMultiEXT-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -281,7 +281,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMultiEXT-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -289,7 +289,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMultiEXT-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -490,50 +490,50 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-viewportCount-03417# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMultiEXT-scissorCount-03418# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMultiEXT-viewportCount-03419# If the bound graphics --     pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-viewportCount-04137# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -541,11 +541,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-viewportCount-04138# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -553,11 +553,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-viewportCount-04139# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -565,11 +565,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-viewportCount-04140# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -577,11 +577,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -589,11 +589,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -601,21 +601,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiEXT-None-04876# If the bound graphics pipeline --     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMultiEXT-None-04877# If the bound graphics pipeline --     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -633,14 +633,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawMultiEXT-blendEnable-04727# If rasterization is not@@ -663,7 +663,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06172# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -672,7 +672,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06173# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -681,7 +681,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06174# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -690,7 +690,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06175# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -699,7 +699,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06176# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -708,7 +708,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06177# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -717,61 +717,61 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-viewMask-06178# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06183# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -780,7 +780,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-imageView-06184# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -793,11 +793,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -809,13 +809,13 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -823,17 +823,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -841,7 +841,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188# If the currently --     bound pipeline was created without a@@ -849,11 +849,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -862,37 +862,37 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiEXT-renderPass-06198# If the current render pass --     instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -937,7 +937,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-primitiveTopology-03420# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this@@ -953,7 +953,7 @@ --     was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic states enabled, then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this@@ -961,7 +961,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-pStrides-04913# If the bound graphics --     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     dynamic state enabled, then@@ -989,7 +989,7 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-04879# If the bound graphics pipeline --     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT' --     /must/ have been called in the current command buffer prior to this@@ -1006,7 +1006,7 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV' -- -- -   #VUID-vkCmdDrawMultiEXT-None-04933# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDraw multiDraw>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> --     feature /must/ be enabled -- -- -   #VUID-vkCmdDrawMultiEXT-drawCount-04934# @drawCount@ /must/ be less@@ -1131,7 +1131,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1187,7 +1187,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -1195,7 +1195,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -1396,50 +1396,50 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419# If the bound --     graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1447,11 +1447,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1459,11 +1459,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1471,11 +1471,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1483,11 +1483,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141# If --     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1495,11 +1495,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142# If --     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1507,21 +1507,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04876# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04877# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -1539,14 +1539,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727# If rasterization@@ -1569,7 +1569,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06172# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1578,7 +1578,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06173# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1587,7 +1587,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06174# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1596,7 +1596,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06175# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1605,7 +1605,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06176# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1614,7 +1614,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06177# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1623,61 +1623,61 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06183# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1686,7 +1686,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-imageView-06184# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1699,11 +1699,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -1715,13 +1715,13 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1729,17 +1729,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1747,7 +1747,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188# If the --     currently bound pipeline was created without a@@ -1755,11 +1755,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -1768,37 +1768,37 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -1843,7 +1843,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this@@ -1859,7 +1859,7 @@ --     pipeline was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic states enabled, then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this@@ -1867,7 +1867,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913# If the bound graphics --     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     dynamic state enabled, then@@ -1895,7 +1895,7 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT' --     /must/ have been called in the current command buffer prior to this@@ -1912,7 +1912,7 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04937# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDraw multiDraw>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> --     feature /must/ be enabled -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938# (@indexSize@ ×
src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot view
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs view
@@ -93,7 +93,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot view
@@ -93,7 +93,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs view
@@ -47,7 +47,7 @@ -- DRM nodes on Linux. -- -- Its functionality closely overlaps with--- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^.+-- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^. -- Unlike the EGL extension, this extension does not expose a string -- containing the name of the device file and instead exposes device minor -- numbers.@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot view
@@ -47,7 +47,7 @@ -- DRM nodes on Linux. -- -- Its functionality closely overlaps with--- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^.+-- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^. -- Unlike the EGL extension, this extension does not expose a string -- containing the name of the device file and instead exposes device minor -- numbers.@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Gregory Grebe@@ -31,6 +36,10 @@ -- [__Last Modified Date__] --     2020-03-23 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -109,29 +118,27 @@ -- rather than forcing an unexpected wait. -- -- Applications can prevent unexpected compilation by setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@. When set, an ICD must not attempt+-- 'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT' on+-- @Vk*PipelineCreateInfo@::@flags@. When set, an ICD must not attempt -- pipeline or shader compilation to create the pipeline object. The ICD--- will return the result--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'. An ICD may--- still return a valid 'Vulkan.Core10.Handles.Pipeline' object by either+-- will return the result 'PIPELINE_COMPILE_REQUIRED_EXT'. An ICD may still+-- return a valid 'Vulkan.Core10.Handles.Pipeline' object by either -- re-using existing pre-compiled objects such as those from a pipeline -- cache, or derivative pipelines. -- -- By default @vkCreate*Pipelines@ calls must attempt to create all -- pipelines before returning. Setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@ can be used as an escape hatch for+-- 'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' on+-- @Vk*PipelineCreateInfo@::@flags@ can be used as an escape hatch for -- batched pipeline creates. -- -- Hidden locks also add to the unpredictability of the cost of pipeline -- creation. The most common case of locks inside the @vkCreate*Pipelines@ -- is internal synchronization of the 'Vulkan.Core10.Handles.PipelineCache'--- object.--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'--- can be set when calling--- 'Vulkan.Core10.PipelineCache.createPipelineCache' to state the cache is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- object. 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT' can be+-- set when calling 'Vulkan.Core10.PipelineCache.createPipelineCache' to+-- state the cache is+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>. -- -- The hope is that armed with this information application and engine -- developers can leverage existing asset streaming systems to recover from@@ -158,25 +165,31 @@ -- -   Extending --     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits': -----     -   'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'+--     -   'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT' -- -- -   Extending --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits': -----     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+--     -   'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' -----     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+--     -   'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.Result.Result': -- --     -   'ERROR_PIPELINE_COMPILE_REQUIRED_EXT' -----     -   'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+--     -   'PIPELINE_COMPILE_REQUIRED_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2019-11-01 (Gregory Grebe)@@ -189,9 +202,8 @@ -- -- -   Revision 3, 2020-03-23 (Tobias Hector) -----     -   Changed---         'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT' to a---         success code, adding an alias for the original+--     -   Changed 'PIPELINE_COMPILE_REQUIRED_EXT' to a success code,+--         adding an alias for the original --         'ERROR_PIPELINE_COMPILE_REQUIRED_EXT'. Also updated the xml to --         include these codes as return values. --@@ -203,124 +215,59 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control 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_pipeline_creation_cache_control  ( pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT-                                                                 , PhysicalDevicePipelineCreationCacheControlFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT+                                                                 , pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT+                                                                 , pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT+                                                                 , pattern PIPELINE_COMPILE_REQUIRED_EXT+                                                                 , pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT+                                                                 , pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT+                                                                 , PhysicalDevicePipelineCreationCacheControlFeaturesEXT                                                                  , EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION                                                                  , pattern EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION                                                                  , EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME                                                                  , pattern EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME                                                                  ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.Result (Result(PIPELINE_COMPILE_REQUIRED_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT))--- No documentation found for TopLevel "VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT"-pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT = PIPELINE_COMPILE_REQUIRED_EXT+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures)+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlags)+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlagBits(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT))+import Vulkan.Core10.Enums.Result (Result(PIPELINE_COMPILE_REQUIRED))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES  --- | VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT - Structure--- describing whether pipeline cache control can be supported by an--- implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' 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. 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' /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_pipeline_creation_cache_control VK_EXT_pipeline_creation_cache_control>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeaturesEXT-  { -- | #features-pipelineCreationCacheControl# @pipelineCreationCacheControl@-    -- indicates that the implementation supports:-    ---    -- -   The following /can/ be used in @Vk*PipelineCreateInfo@::@flags@:-    ---    --     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'-    ---    --     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'-    ---    -- -   The following /can/ be used in-    --     'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo'::@flags@:-    ---    --     -   'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'-    pipelineCreationCacheControl :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)-#endif-deriving instance Show PhysicalDevicePipelineCreationCacheControlFeaturesEXT+-- No documentation found for TopLevel "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"+pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT -instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDevicePipelineCreationCacheControlFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineCreationCacheControl))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT where-  peekCStruct p = do-    pipelineCreationCacheControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDevicePipelineCreationCacheControlFeaturesEXT-             (bool32ToBool pipelineCreationCacheControl)+-- No documentation found for TopLevel "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"+pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT -instance Storable PhysicalDevicePipelineCreationCacheControlFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDevicePipelineCreationCacheControlFeaturesEXT where-  zero = PhysicalDevicePipelineCreationCacheControlFeaturesEXT-           zero+-- No documentation found for TopLevel "VK_PIPELINE_COMPILE_REQUIRED_EXT"+pattern PIPELINE_COMPILE_REQUIRED_EXT = PIPELINE_COMPILE_REQUIRED+++-- No documentation found for TopLevel "VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT"+pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT = PIPELINE_COMPILE_REQUIRED+++-- No documentation found for TopLevel "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"+pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT+++-- No documentation found for TopLevel "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT"+type PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures   type EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION = 3
− src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot
@@ -1,222 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_pipeline_creation_cache_control - device extension------ == VK_EXT_pipeline_creation_cache_control------ [__Name String__]---     @VK_EXT_pipeline_creation_cache_control@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     298------ [__Revision__]---     3------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------ [__Contact__]------     -   Gregory Grebe---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_creation_cache_control] @grgrebe_amd%0A<<Here describe the issue or question you have about the VK_EXT_pipeline_creation_cache_control extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-03-23------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Gregory Grebe, AMD------     -   Tobias Hector, AMD------     -   Matthaeus Chajdas, AMD------     -   Mitch Singer, AMD------     -   Spencer Fricke, Samsung Electronics------     -   Stuart Smith, Imagination Technologies------     -   Jeff Bolz, NVIDIA Corporation------     -   Daniel Koch, NVIDIA Corporation------     -   Dan Ginsburg, Valve Corporation------     -   Jeff Leger, QUALCOMM------     -   Michal Pietrasiuk, Intel------     -   Jan-Harald Fredriksen, Arm Limited------ == Description------ This extension adds flags to @Vk*PipelineCreateInfo@ and--- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo' structures with--- the aim of improving the predictability of pipeline creation cost. The--- goal is to provide information about potentially expensive hazards--- within the client driver during pipeline creation to the application--- before carrying them out rather than after.------ == Background------ Pipeline creation is a costly operation, and the explicit nature of the--- Vulkan design means that cost is not hidden from the developer.--- Applications are also expected to schedule, prioritize, and load balance--- all calls for pipeline creation. It is strongly advised that--- applications create pipelines sufficiently ahead of their usage. Failure--- to do so will result in an unresponsive application, intermittent--- stuttering, or other poor user experiences. Proper usage of pipeline--- caches and\/or derivative pipelines help mitigate this but is not--- assured to eliminate disruption in all cases. In the event that an--- ahead-of-time creation is not possible, considerations should be taken--- to ensure that the current execution context is suitable for the--- workload of pipeline creation including possible shader compilation.------ Applications making API calls to create a pipeline must be prepared for--- any of the following to occur:------ -   OS\/kernel calls to be made by the ICD------ -   Internal memory allocation not tracked by the @pAllocator@ passed to---     @vkCreate*Pipelines@------ -   Internal thread synchronization or yielding of the current thread’s---     core------ -   Extremely long (multi-millisecond+), blocking, compilation times------ -   Arbitrary call stacks depths and stack memory usage------ The job or task based game engines that are being developed to take--- advantage of explicit graphics APIs like Vulkan may behave exceptionally--- poorly if any of the above scenarios occur. However, most game engines--- are already built to “stream” in assets dynamically as the user plays--- the game. By adding control by way of--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags', we can--- require an ICD to report back a failure in critical execution paths--- rather than forcing an unexpected wait.------ Applications can prevent unexpected compilation by setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@. When set, an ICD must not attempt--- pipeline or shader compilation to create the pipeline object. The ICD--- will return the result--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'. An ICD may--- still return a valid 'Vulkan.Core10.Handles.Pipeline' object by either--- re-using existing pre-compiled objects such as those from a pipeline--- cache, or derivative pipelines.------ By default @vkCreate*Pipelines@ calls must attempt to create all--- pipelines before returning. Setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@ can be used as an escape hatch for--- batched pipeline creates.------ Hidden locks also add to the unpredictability of the cost of pipeline--- creation. The most common case of locks inside the @vkCreate*Pipelines@--- is internal synchronization of the 'Vulkan.Core10.Handles.PipelineCache'--- object.--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'--- can be set when calling--- 'Vulkan.Core10.PipelineCache.createPipelineCache' to state the cache is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.------ The hope is that armed with this information application and engine--- developers can leverage existing asset streaming systems to recover from--- \"just-in-time\" pipeline creation stalls.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDevicePipelineCreationCacheControlFeaturesEXT'------ == New Enums------ -   'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits'------ == New Enum Constants------ -   'EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME'------ -   'EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits':------     -   'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'------ -   Extending---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':------     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'------     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'------ -   Extending 'Vulkan.Core10.Enums.Result.Result':------     -   'ERROR_PIPELINE_COMPILE_REQUIRED_EXT'------     -   'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT'------ == Version History------ -   Revision 1, 2019-11-01 (Gregory Grebe)------     -   Initial revision------ -   Revision 2, 2020-02-24 (Gregory Grebe)------     -   Initial public revision------ -   Revision 3, 2020-03-23 (Tobias Hector)------     -   Changed---         'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT' to a---         success code, adding an alias for the original---         'ERROR_PIPELINE_COMPILE_REQUIRED_EXT'. Also updated the xml to---         include these codes as return values.------ == See Also------ 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT',--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control 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_pipeline_creation_cache_control  (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDevicePipelineCreationCacheControlFeaturesEXT--instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT-instance Show PhysicalDevicePipelineCreationCacheControlFeaturesEXT--instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Special Use__] -- --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>@@ -35,6 +40,10 @@ -- [__Last Modified Date__] --     2019-03-12 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -94,8 +103,14 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2019-03-12 (Jean-Francois Roy)@@ -111,344 +126,45 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback 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_pipeline_creation_feedback  ( PipelineCreationFeedbackEXT(..)-                                                            , PipelineCreationFeedbackCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback  ( pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT                                                             , PipelineCreationFeedbackFlagsEXT-                                                            , PipelineCreationFeedbackFlagBitsEXT( PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT-                                                                                                 , PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT-                                                                                                 , PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT-                                                                                                 , ..-                                                                                                 )+                                                            , PipelineCreationFeedbackFlagBitsEXT+                                                            , PipelineCreationFeedbackEXT+                                                            , PipelineCreationFeedbackCreateInfoEXT                                                             , EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION                                                             , pattern EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION                                                             , EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME                                                             , pattern EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME                                                             ) where -import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showString)-import Numeric (showHex)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero)-import Vulkan.Zero (Zero(..))-import Data.Bits (Bits)-import Data.Bits (FiniteBits) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.Word (Word64)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT))--- | VkPipelineCreationFeedbackEXT - Feedback about the creation of a--- pipeline or pipeline stage------ = Description------ If the 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' is not set in @flags@,--- an implementation /must/ not set any other bits in @flags@, and the--- values of all other 'PipelineCreationFeedbackEXT' data members are--- undefined.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,--- 'PipelineCreationFeedbackCreateInfoEXT',--- 'PipelineCreationFeedbackFlagBitsEXT',--- 'PipelineCreationFeedbackFlagsEXT'-data PipelineCreationFeedbackEXT = PipelineCreationFeedbackEXT-  { -- | @flags@ is a bitmask of 'PipelineCreationFeedbackFlagBitsEXT' providing-    -- feedback about the creation of a pipeline or of a pipeline stage.-    flags :: PipelineCreationFeedbackFlagsEXT-  , -- | @duration@ is the duration spent creating a pipeline or pipeline stage-    -- in nanoseconds.-    duration :: Word64-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineCreationFeedbackEXT)-#endif-deriving instance Show PipelineCreationFeedbackEXT+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedback)+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlagBits)+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO -instance ToCStruct PipelineCreationFeedbackEXT where-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PipelineCreationFeedbackEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlagsEXT)) (flags)-    poke ((p `plusPtr` 8 :: Ptr Word64)) (duration)-    f-  cStructSize = 16-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlagsEXT)) (zero)-    poke ((p `plusPtr` 8 :: Ptr Word64)) (zero)-    f -instance FromCStruct PipelineCreationFeedbackEXT where-  peekCStruct p = do-    flags <- peek @PipelineCreationFeedbackFlagsEXT ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlagsEXT))-    duration <- peek @Word64 ((p `plusPtr` 8 :: Ptr Word64))-    pure $ PipelineCreationFeedbackEXT-             flags duration+-- No documentation found for TopLevel "VkPipelineCreationFeedbackFlagsEXT"+type PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlags -instance Storable PipelineCreationFeedbackEXT where-  sizeOf ~_ = 16-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PipelineCreationFeedbackEXT where-  zero = PipelineCreationFeedbackEXT-           zero-           zero+-- No documentation found for TopLevel "VkPipelineCreationFeedbackFlagBitsEXT"+type PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits  --- | VkPipelineCreationFeedbackCreateInfoEXT - Request for feedback about the--- creation of a pipeline------ = Description------ An implementation /should/ write pipeline creation feedback to--- @pPipelineCreationFeedback@ and /may/ write pipeline stage creation--- feedback to @pPipelineStageCreationFeedbacks@. An implementation /must/--- set or clear the 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' in--- 'PipelineCreationFeedbackEXT'::@flags@ for @pPipelineCreationFeedback@--- and every element of @pPipelineStageCreationFeedbacks@.------ Note------ One common scenario for an implementation to skip per-stage feedback is--- when 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT'--- is set in @pPipelineCreationFeedback@.------ When chained to--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', or--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', the @i@ element of--- @pPipelineStageCreationFeedbacks@ corresponds to the @i@ element of--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@pStages@,--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@pStages@,--- or 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@. When--- chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', the first--- element of @pPipelineStageCreationFeedbacks@ corresponds to--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'::@stage@.------ == Valid Usage------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02668#---     When chained to 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',---     'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@---     /must/ equal---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@stageCount@------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02669#---     When chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',---     'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@---     /must/ equal 1------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02670#---     When chained to---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',---     'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@---     /must/ equal---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@stageCount@------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02969#---     When chained to---     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',---     'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@---     /must/ equal---     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@stageCount@------ == Valid Usage (Implicit)------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-sType-sType# @sType@---     /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT'------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineCreationFeedback-parameter#---     @pPipelineCreationFeedback@ /must/ be a valid pointer to a---     'PipelineCreationFeedbackEXT' structure------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineStageCreationFeedbacks-parameter#---     @pPipelineStageCreationFeedbacks@ /must/ be a valid pointer to an---     array of @pipelineStageCreationFeedbackCount@---     'PipelineCreationFeedbackEXT' structures------ -   #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-arraylength#---     @pipelineStageCreationFeedbackCount@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'PipelineCreationFeedbackEXT',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfoEXT-  { -- | @pPipelineCreationFeedback@ is a pointer to a-    -- 'PipelineCreationFeedbackEXT' structure.-    pipelineCreationFeedback :: Ptr PipelineCreationFeedbackEXT-  , -- | @pipelineStageCreationFeedbackCount@ is the number of elements in-    -- @pPipelineStageCreationFeedbacks@.-    pipelineStageCreationFeedbackCount :: Word32-  , -- | @pPipelineStageCreationFeedbacks@ is a pointer to an array of-    -- @pipelineStageCreationFeedbackCount@ 'PipelineCreationFeedbackEXT'-    -- structures.-    pipelineStageCreationFeedbacks :: Ptr PipelineCreationFeedbackEXT-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineCreationFeedbackCreateInfoEXT)-#endif-deriving instance Show PipelineCreationFeedbackCreateInfoEXT--instance ToCStruct PipelineCreationFeedbackCreateInfoEXT where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PipelineCreationFeedbackCreateInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (pipelineCreationFeedback)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (pipelineStageCreationFeedbackCount)-    poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (pipelineStageCreationFeedbacks)-    f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (zero)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (zero)-    f--instance FromCStruct PipelineCreationFeedbackCreateInfoEXT where-  peekCStruct p = do-    pPipelineCreationFeedback <- peek @(Ptr PipelineCreationFeedbackEXT) ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedbackEXT)))-    pipelineStageCreationFeedbackCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))-    pPipelineStageCreationFeedbacks <- peek @(Ptr PipelineCreationFeedbackEXT) ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedbackEXT)))-    pure $ PipelineCreationFeedbackCreateInfoEXT-             pPipelineCreationFeedback pipelineStageCreationFeedbackCount pPipelineStageCreationFeedbacks--instance Storable PipelineCreationFeedbackCreateInfoEXT where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineCreationFeedbackCreateInfoEXT where-  zero = PipelineCreationFeedbackCreateInfoEXT-           zero-           zero-           zero+-- No documentation found for TopLevel "VkPipelineCreationFeedbackEXT"+type PipelineCreationFeedbackEXT = PipelineCreationFeedback  -type PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlagBitsEXT---- | VkPipelineCreationFeedbackFlagBitsEXT - Bitmask specifying pipeline or--- pipeline stage creation feedback------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,--- 'PipelineCreationFeedbackCreateInfoEXT', 'PipelineCreationFeedbackEXT',--- 'PipelineCreationFeedbackFlagsEXT'-newtype PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBitsEXT Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' indicates that the feedback--- information is valid.-pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = PipelineCreationFeedbackFlagBitsEXT 0x00000001--- | 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT'--- indicates that a readily usable pipeline or pipeline stage was found in--- the @pipelineCache@ specified by the application in the pipeline--- creation command.------ An implementation /should/ set the--- 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT' bit--- if it was able to avoid the large majority of pipeline or pipeline stage--- creation work by using the @pipelineCache@ parameter of--- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV', or--- 'Vulkan.Core10.Pipeline.createComputePipelines'. When an implementation--- sets this bit for the entire pipeline, it /may/ leave it unset for any--- stage.------ Note------ Implementations are encouraged to provide a meaningful signal to--- applications using this bit. The intention is to communicate to the--- application that the pipeline or pipeline stage was created \"as fast as--- it gets\" using the pipeline cache provided by the application. If an--- implementation uses an internal cache, it is discouraged from setting--- this bit as the feedback would be unactionable.-pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT =-  PipelineCreationFeedbackFlagBitsEXT 0x00000002--- | 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT'--- indicates that the base pipeline specified by the @basePipelineHandle@--- or @basePipelineIndex@ member of the @Vk*PipelineCreateInfo@ structure--- was used to accelerate the creation of the pipeline.------ An implementation /should/ set the--- 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT' bit if--- it was able to avoid a significant amount of work by using the base--- pipeline.------ Note------ While \"significant amount of work\" is subjective, implementations are--- encouraged to provide a meaningful signal to applications using this--- bit. For example, a 1% reduction in duration may not warrant setting--- this bit, while a 50% reduction would.-pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = PipelineCreationFeedbackFlagBitsEXT 0x00000004--conNamePipelineCreationFeedbackFlagBitsEXT :: String-conNamePipelineCreationFeedbackFlagBitsEXT = "PipelineCreationFeedbackFlagBitsEXT"--enumPrefixPipelineCreationFeedbackFlagBitsEXT :: String-enumPrefixPipelineCreationFeedbackFlagBitsEXT = "PIPELINE_CREATION_FEEDBACK_"--showTablePipelineCreationFeedbackFlagBitsEXT :: [(PipelineCreationFeedbackFlagBitsEXT, String)]-showTablePipelineCreationFeedbackFlagBitsEXT =-  [ (PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT                         , "VALID_BIT_EXT")-  , (PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT, "APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT")-  , (PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT    , "BASE_PIPELINE_ACCELERATION_BIT_EXT")-  ]--instance Show PipelineCreationFeedbackFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineCreationFeedbackFlagBitsEXT-                            showTablePipelineCreationFeedbackFlagBitsEXT-                            conNamePipelineCreationFeedbackFlagBitsEXT-                            (\(PipelineCreationFeedbackFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read PipelineCreationFeedbackFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixPipelineCreationFeedbackFlagBitsEXT-                          showTablePipelineCreationFeedbackFlagBitsEXT-                          conNamePipelineCreationFeedbackFlagBitsEXT-                          PipelineCreationFeedbackFlagBitsEXT+-- No documentation found for TopLevel "VkPipelineCreationFeedbackCreateInfoEXT"+type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo   type EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot
@@ -1,140 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_pipeline_creation_feedback - device extension------ == VK_EXT_pipeline_creation_feedback------ [__Name String__]---     @VK_EXT_pipeline_creation_feedback@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     193------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------ [__Special Use__]------     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>------ [__Contact__]------     -   Jean-Francois Roy---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_creation_feedback] @jfroy%0A<<Here describe the issue or question you have about the VK_EXT_pipeline_creation_feedback extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2019-03-12------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Jean-Francois Roy, Google------     -   Hai Nguyen, Google------     -   Andrew Ellem, Google------     -   Bob Fraser, Google------     -   Sujeevan Rajayogam, Google------     -   Jan-Harald Fredriksen, ARM------     -   Jeff Leger, Qualcomm Technologies, Inc.------     -   Jeff Bolz, NVIDIA------     -   Daniel Koch, NVIDIA------     -   Neil Henning, AMD------ == Description------ This extension adds a mechanism to provide feedback to an application--- about pipeline creation, with the specific goal of allowing a feedback--- loop between build systems and in-the-field application executions to--- ensure effective pipeline caches are shipped to customers.------ == New Structures------ -   'PipelineCreationFeedbackEXT'------ -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',---     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',---     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':------     -   'PipelineCreationFeedbackCreateInfoEXT'------ == New Enums------ -   'PipelineCreationFeedbackFlagBitsEXT'------ == New Bitmasks------ -   'PipelineCreationFeedbackFlagsEXT'------ == New Enum Constants------ -   'EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME'------ -   'EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT'------ == Version History------ -   Revision 1, 2019-03-12 (Jean-Francois Roy)------     -   Initial revision------ == See Also------ 'PipelineCreationFeedbackCreateInfoEXT', 'PipelineCreationFeedbackEXT',--- 'PipelineCreationFeedbackFlagBitsEXT',--- 'PipelineCreationFeedbackFlagsEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback 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_pipeline_creation_feedback  ( PipelineCreationFeedbackCreateInfoEXT-                                                            , PipelineCreationFeedbackEXT-                                                            ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PipelineCreationFeedbackCreateInfoEXT--instance ToCStruct PipelineCreationFeedbackCreateInfoEXT-instance Show PipelineCreationFeedbackCreateInfoEXT--instance FromCStruct PipelineCreationFeedbackCreateInfoEXT---data PipelineCreationFeedbackEXT--instance ToCStruct PipelineCreationFeedbackEXT-instance Show PipelineCreationFeedbackEXT--instance FromCStruct PipelineCreationFeedbackEXT-
src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs view
@@ -55,18 +55,18 @@ -- which allows the fragment shader to control whether values in the -- 'Vulkan.Core10.FundamentalTypes.SampleMask' built-in input variable -- reflect the coverage after early--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth depth>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil stencil>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil> -- tests are applied. -- -- This extension adds a new @PostDepthCoverage@ execution mode under the -- @SampleMaskPostDepthCoverage@ capability. When this mode is specified -- along with @EarlyFragmentTests@, the value of an input variable -- decorated with the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask >+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask > -- built-in reflects the coverage after the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests> -- are applied. Otherwise, it reflects the coverage before the depth and -- stencil tests. --@@ -83,7 +83,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage> -- -- == Version History --@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_post_depth_coverage Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_post_depth_coverage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs view
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot view
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_private_data.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Matthew Rusch@@ -31,6 +36,10 @@ -- [__Last Modified Date__] --     2020-03-25 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -46,18 +55,17 @@ -- -- == Description ----- The \'VK_EXT_private_data\' extension is a device extension which--- enables attaching arbitrary payloads to Vulkan objects. It introduces--- the idea of private data slots as a means of storing a 64-bit unsigned--- integer of application defined data. Private data slots can be created--- or destroyed any time an associated device is available. Private data--- slots can be reserved at device creation time, and limiting use to the--- amount reserved will allow the extension to exhibit better performance--- characteristics.+-- This extension is a device extension which enables attaching arbitrary+-- payloads to Vulkan objects. It introduces the idea of private data slots+-- as a means of storing a 64-bit unsigned integer of application defined+-- data. Private data slots can be created or destroyed any time an+-- associated device is available. Private data slots can be reserved at+-- device creation time, and limiting use to the amount reserved will allow+-- the extension to exhibit better performance characteristics. -- -- == New Object Types ----- -   'Vulkan.Extensions.Handles.PrivateDataSlotEXT'+-- -   'PrivateDataSlotEXT' -- -- == New Commands --@@ -99,16 +107,22 @@ -- -- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType': -----     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT'+--     -   'OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Examples -- -- -   In progress@@ -124,617 +138,106 @@ -- 'DevicePrivateDataCreateInfoEXT', -- 'PhysicalDevicePrivateDataFeaturesEXT', -- 'PrivateDataSlotCreateFlagBitsEXT', 'PrivateDataSlotCreateFlagsEXT',--- 'PrivateDataSlotCreateInfoEXT',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT',+-- 'PrivateDataSlotCreateInfoEXT', 'PrivateDataSlotEXT', -- 'createPrivateDataSlotEXT', 'destroyPrivateDataSlotEXT', -- 'getPrivateDataEXT', 'setPrivateDataEXT' -- -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_private_data 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_private_data  ( createPrivateDataSlotEXT-                                              , withPrivateDataSlotEXT+module Vulkan.Extensions.VK_EXT_private_data  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT+                                              , pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT+                                              , pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT+                                              , pattern OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT+                                              , createPrivateDataSlotEXT                                               , destroyPrivateDataSlotEXT                                               , setPrivateDataEXT                                               , getPrivateDataEXT-                                              , DevicePrivateDataCreateInfoEXT(..)-                                              , PrivateDataSlotCreateInfoEXT(..)-                                              , PhysicalDevicePrivateDataFeaturesEXT(..)                                               , PrivateDataSlotCreateFlagsEXT-                                              , PrivateDataSlotCreateFlagBitsEXT(..)+                                              , PrivateDataSlotEXT+                                              , PrivateDataSlotCreateFlagBitsEXT+                                              , DevicePrivateDataCreateInfoEXT+                                              , PrivateDataSlotCreateInfoEXT+                                              , PhysicalDevicePrivateDataFeaturesEXT                                               , EXT_PRIVATE_DATA_SPEC_VERSION                                               , pattern EXT_PRIVATE_DATA_SPEC_VERSION                                               , EXT_PRIVATE_DATA_EXTENSION_NAME                                               , pattern EXT_PRIVATE_DATA_EXTENSION_NAME-                                              , PrivateDataSlotEXT(..)                                               ) where -import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Exception.Base (bracket)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Marshal.Alloc (callocBytes)-import Foreign.Marshal.Alloc (free)-import GHC.Base (when)-import GHC.IO (throwIO)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showString)-import Numeric (showHex)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero)-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.Bits (Bits)-import Data.Bits (FiniteBits) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.Word (Word64)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Handles (Device)-import Vulkan.Core10.Handles (Device(..))-import Vulkan.Core10.Handles (Device(Device))-import Vulkan.Dynamic (DeviceCmds(pVkCreatePrivateDataSlotEXT))-import Vulkan.Dynamic (DeviceCmds(pVkDestroyPrivateDataSlotEXT))-import Vulkan.Dynamic (DeviceCmds(pVkGetPrivateDataEXT))-import Vulkan.Dynamic (DeviceCmds(pVkSetPrivateDataEXT))-import Vulkan.Core10.Handles (Device_T)-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.Enums.ObjectType (ObjectType)-import Vulkan.Core10.Enums.ObjectType (ObjectType(..))-import Vulkan.Extensions.Handles (PrivateDataSlotEXT)-import Vulkan.Extensions.Handles (PrivateDataSlotEXT(..))-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Extensions.Handles (PrivateDataSlotEXT(..))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCreatePrivateDataSlotEXT-  :: FunPtr (Ptr Device_T -> Ptr PrivateDataSlotCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr PrivateDataSlotEXT -> IO Result) -> Ptr Device_T -> Ptr PrivateDataSlotCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr PrivateDataSlotEXT -> IO Result+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (createPrivateDataSlot)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (destroyPrivateDataSlot)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (getPrivateData)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (setPrivateData)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures)+import Vulkan.Core13.Handles (PrivateDataSlot)+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlagBits)+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlags)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo)+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES --- | vkCreatePrivateDataSlotEXT - Create a slot for private data storage------ == Valid Usage------ -   #VUID-vkCreatePrivateDataSlotEXT-privateData-04564# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-privateData privateData>---     feature /must/ be enabled------ == Valid Usage (Implicit)------ -   #VUID-vkCreatePrivateDataSlotEXT-device-parameter# @device@ /must/---     be a valid 'Vulkan.Core10.Handles.Device' handle------ -   #VUID-vkCreatePrivateDataSlotEXT-pCreateInfo-parameter#---     @pCreateInfo@ /must/ be a valid pointer to a valid---     'PrivateDataSlotCreateInfoEXT' structure------ -   #VUID-vkCreatePrivateDataSlotEXT-pAllocator-parameter# If---     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer---     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'---     structure------ -   #VUID-vkCreatePrivateDataSlotEXT-pPrivateDataSlot-parameter#---     @pPrivateDataSlot@ /must/ be a valid pointer to a---     'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle------ == Return Codes------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]------     -   'Vulkan.Core10.Enums.Result.SUCCESS'------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]------     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'Vulkan.Core10.Handles.Device', 'PrivateDataSlotCreateInfoEXT',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-createPrivateDataSlotEXT :: forall io-                          . (MonadIO io)-                         => -- | @device@ is the logical device associated with the creation of the-                            -- object(s) holding the private data slot.-                            Device-                         -> -- | @pCreateInfo@ is a pointer to a 'PrivateDataSlotCreateInfoEXT'-                            PrivateDataSlotCreateInfoEXT-                         -> -- | @pAllocator@ controls host memory allocation as described in the-                            -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>-                            -- chapter.-                            ("allocator" ::: Maybe AllocationCallbacks)-                         -> io (PrivateDataSlotEXT)-createPrivateDataSlotEXT device createInfo allocator = liftIO . evalContT $ do-  let vkCreatePrivateDataSlotEXTPtr = pVkCreatePrivateDataSlotEXT (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkCreatePrivateDataSlotEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreatePrivateDataSlotEXT is null" Nothing Nothing-  let vkCreatePrivateDataSlotEXT' = mkVkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXTPtr-  pCreateInfo <- ContT $ withCStruct (createInfo)-  pAllocator <- case (allocator) of-    Nothing -> pure nullPtr-    Just j -> ContT $ withCStruct (j)-  pPPrivateDataSlot <- ContT $ bracket (callocBytes @PrivateDataSlotEXT 8) free-  r <- lift $ traceAroundEvent "vkCreatePrivateDataSlotEXT" (vkCreatePrivateDataSlotEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPPrivateDataSlot))-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))-  pPrivateDataSlot <- lift $ peek @PrivateDataSlotEXT pPPrivateDataSlot-  pure $ (pPrivateDataSlot) --- | A convenience wrapper to make a compatible pair of calls to--- 'createPrivateDataSlotEXT' and 'destroyPrivateDataSlotEXT'------ To ensure that 'destroyPrivateDataSlotEXT' is always called: pass--- 'Control.Exception.bracket' (or the allocate function from your--- favourite resource management library) as the last argument.--- To just extract the pair pass '(,)' as the last argument.----withPrivateDataSlotEXT :: forall io r . MonadIO io => Device -> PrivateDataSlotCreateInfoEXT -> Maybe AllocationCallbacks -> (io PrivateDataSlotEXT -> (PrivateDataSlotEXT -> io ()) -> r) -> r-withPrivateDataSlotEXT device pCreateInfo pAllocator b =-  b (createPrivateDataSlotEXT device pCreateInfo pAllocator)-    (\(o0) -> destroyPrivateDataSlotEXT device o0 pAllocator)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO  -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkDestroyPrivateDataSlotEXT-  :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> PrivateDataSlotEXT -> Ptr AllocationCallbacks -> IO ()+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO --- | vkDestroyPrivateDataSlotEXT - Destroy a private data slot------ == Valid Usage------ -   #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04062# If---     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were---     provided when @privateDataSlot@ was created, a compatible set of---     callbacks /must/ be provided here------ -   #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04063# If no---     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were---     provided when @privateDataSlot@ was created, @pAllocator@ /must/ be---     @NULL@------ == Valid Usage (Implicit)------ -   #VUID-vkDestroyPrivateDataSlotEXT-device-parameter# @device@ /must/---     be a valid 'Vulkan.Core10.Handles.Device' handle------ -   #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parameter# If---     @privateDataSlot@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @privateDataSlot@ /must/ be a valid---     'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle------ -   #VUID-vkDestroyPrivateDataSlotEXT-pAllocator-parameter# If---     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer---     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'---     structure------ -   #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parent# If---     @privateDataSlot@ is a valid handle, it /must/ have been created,---     allocated, or retrieved from @device@------ == Host Synchronization------ -   Host access to @privateDataSlot@ /must/ be externally synchronized------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-destroyPrivateDataSlotEXT :: forall io-                           . (MonadIO io)-                          => -- | @device@ is the logical device associated with the creation of the-                             -- object(s) holding the private data slot.-                             Device-                          -> -- | @privateDataSlot@ is the private data slot to destroy.-                             PrivateDataSlotEXT-                          -> -- | @pAllocator@ controls host memory allocation as described in the-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>-                             -- chapter.-                             ("allocator" ::: Maybe AllocationCallbacks)-                          -> io ()-destroyPrivateDataSlotEXT device privateDataSlot allocator = liftIO . evalContT $ do-  let vkDestroyPrivateDataSlotEXTPtr = pVkDestroyPrivateDataSlotEXT (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkDestroyPrivateDataSlotEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPrivateDataSlotEXT is null" Nothing Nothing-  let vkDestroyPrivateDataSlotEXT' = mkVkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXTPtr-  pAllocator <- case (allocator) of-    Nothing -> pure nullPtr-    Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyPrivateDataSlotEXT" (vkDestroyPrivateDataSlotEXT' (deviceHandle (device)) (privateDataSlot) pAllocator)-  pure $ () +-- No documentation found for TopLevel "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT"+pattern OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = OBJECT_TYPE_PRIVATE_DATA_SLOT -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkSetPrivateDataEXT-  :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Word64 -> IO Result) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Word64 -> IO Result --- | vkSetPrivateDataEXT - Associate data with a Vulkan object------ == Return Codes------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]------     -   'Vulkan.Core10.Enums.Result.SUCCESS'------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]------     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Core10.Enums.ObjectType.ObjectType',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-setPrivateDataEXT :: forall io-                   . (MonadIO io)-                  => -- | @device@ is the device that created the object.-                     ---                     -- #VUID-vkSetPrivateDataEXT-device-parameter# @device@ /must/ be a valid-                     -- 'Vulkan.Core10.Handles.Device' handle-                     Device-                  -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying-                     -- the type of object to associate data with.-                     ---                     -- #VUID-vkSetPrivateDataEXT-objectType-parameter# @objectType@ /must/ be a-                     -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value-                     ObjectType-                  -> -- | @objectHandle@ is a handle to the object to associate data with.-                     ---                     -- #VUID-vkSetPrivateDataEXT-objectHandle-04016# @objectHandle@ /must/ be-                     -- @device@ or a child of @device@-                     ---                     -- #VUID-vkSetPrivateDataEXT-objectHandle-04017# @objectHandle@ /must/ be a-                     -- valid handle to an object of type @objectType@-                     ("objectHandle" ::: Word64)-                  -> -- | @privateDataSlot@ is a handle to a-                     -- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' specifying location of-                     -- private data storage.-                     ---                     -- #VUID-vkSetPrivateDataEXT-privateDataSlot-parameter# @privateDataSlot@-                     -- /must/ be a valid 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle-                     ---                     -- #VUID-vkSetPrivateDataEXT-privateDataSlot-parent# @privateDataSlot@-                     -- /must/ have been created, allocated, or retrieved from @device@-                     PrivateDataSlotEXT-                  -> -- | @data@ is user defined data to associate the object with. This data will-                     -- be stored at @privateDataSlot@.-                     ("data" ::: Word64)-                  -> io ()-setPrivateDataEXT device objectType objectHandle privateDataSlot data' = liftIO $ do-  let vkSetPrivateDataEXTPtr = pVkSetPrivateDataEXT (case device of Device{deviceCmds} -> deviceCmds)-  unless (vkSetPrivateDataEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetPrivateDataEXT is null" Nothing Nothing-  let vkSetPrivateDataEXT' = mkVkSetPrivateDataEXT vkSetPrivateDataEXTPtr-  r <- traceAroundEvent "vkSetPrivateDataEXT" (vkSetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (data'))-  when (r < SUCCESS) (throwIO (VulkanException r))+-- No documentation found for TopLevel "vkCreatePrivateDataSlotEXT"+createPrivateDataSlotEXT = createPrivateDataSlot  -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetPrivateDataEXT-  :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Ptr Word64 -> IO ()) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Ptr Word64 -> IO ()+-- No documentation found for TopLevel "vkDestroyPrivateDataSlotEXT"+destroyPrivateDataSlotEXT = destroyPrivateDataSlot --- | vkGetPrivateDataEXT - Retrieve data associated with a Vulkan object------ = Description------ Note------ Due to platform details on Android, implementations might not be able to--- reliably return @0@ from calls to 'getPrivateDataEXT' for--- 'Vulkan.Extensions.Handles.SwapchainKHR' objects on which--- 'setPrivateDataEXT' has not previously been called. This erratum is--- exclusive to the Android platform and objects of type--- 'Vulkan.Extensions.Handles.SwapchainKHR'.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Core10.Enums.ObjectType.ObjectType',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-getPrivateDataEXT :: forall io-                   . (MonadIO io)-                  => -- | @device@ is the device that created the object-                     ---                     -- #VUID-vkGetPrivateDataEXT-device-parameter# @device@ /must/ be a valid-                     -- 'Vulkan.Core10.Handles.Device' handle-                     Device-                  -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying-                     -- the type of object data is associated with.-                     ---                     -- #VUID-vkGetPrivateDataEXT-objectType-04018# @objectType@ /must/ be-                     -- 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_DEVICE', or an object type-                     -- whose parent is 'Vulkan.Core10.Handles.Device'-                     ---                     -- #VUID-vkGetPrivateDataEXT-objectType-parameter# @objectType@ /must/ be a-                     -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value-                     ObjectType-                  -> -- | @objectHandle@ is a handle to the object data is associated with.-                     ("objectHandle" ::: Word64)-                  -> -- | @privateDataSlot@ is a handle to a-                     -- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' specifying location of-                     -- private data pointer storage.-                     ---                     -- #VUID-vkGetPrivateDataEXT-privateDataSlot-parameter# @privateDataSlot@-                     -- /must/ be a valid 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle-                     ---                     -- #VUID-vkGetPrivateDataEXT-privateDataSlot-parent# @privateDataSlot@-                     -- /must/ have been created, allocated, or retrieved from @device@-                     PrivateDataSlotEXT-                  -> io (("data" ::: Word64))-getPrivateDataEXT device objectType objectHandle privateDataSlot = liftIO . evalContT $ do-  let vkGetPrivateDataEXTPtr = pVkGetPrivateDataEXT (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkGetPrivateDataEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPrivateDataEXT is null" Nothing Nothing-  let vkGetPrivateDataEXT' = mkVkGetPrivateDataEXT vkGetPrivateDataEXTPtr-  pPData <- ContT $ bracket (callocBytes @Word64 8) free-  lift $ traceAroundEvent "vkGetPrivateDataEXT" (vkGetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (pPData))-  pData <- lift $ peek @Word64 pPData-  pure $ (pData) +-- No documentation found for TopLevel "vkSetPrivateDataEXT"+setPrivateDataEXT = setPrivateData --- | VkDevicePrivateDataCreateInfoEXT - Reserve private data slots------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfoEXT-  { -- | @privateDataSlotRequestCount@ is the amount of slots to reserve.-    privateDataSlotRequestCount :: Word32 }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DevicePrivateDataCreateInfoEXT)-#endif-deriving instance Show DevicePrivateDataCreateInfoEXT -instance ToCStruct DevicePrivateDataCreateInfoEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p DevicePrivateDataCreateInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (privateDataSlotRequestCount)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    f+-- No documentation found for TopLevel "vkGetPrivateDataEXT"+getPrivateDataEXT = getPrivateData -instance FromCStruct DevicePrivateDataCreateInfoEXT where-  peekCStruct p = do-    privateDataSlotRequestCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    pure $ DevicePrivateDataCreateInfoEXT-             privateDataSlotRequestCount -instance Storable DevicePrivateDataCreateInfoEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())+-- No documentation found for TopLevel "VkPrivateDataSlotCreateFlagsEXT"+type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlags -instance Zero DevicePrivateDataCreateInfoEXT where-  zero = DevicePrivateDataCreateInfoEXT-           zero +-- No documentation found for TopLevel "VkPrivateDataSlotEXT"+type PrivateDataSlotEXT = PrivateDataSlot --- | VkPrivateDataSlotCreateInfoEXT - Structure specifying the parameters of--- private data slot construction------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'PrivateDataSlotCreateFlagsEXT',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'createPrivateDataSlotEXT'-data PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfoEXT-  { -- | @flags@ is a bitmask of 'PrivateDataSlotCreateFlagsEXT' specifying-    -- additional parameters of the new private data slot-    ---    -- #VUID-VkPrivateDataSlotCreateInfoEXT-flags-zerobitmask# @flags@ /must/-    -- be @0@-    flags :: PrivateDataSlotCreateFlagsEXT }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PrivateDataSlotCreateInfoEXT)-#endif-deriving instance Show PrivateDataSlotCreateInfoEXT -instance ToCStruct PrivateDataSlotCreateInfoEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PrivateDataSlotCreateInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlagsEXT)) (flags)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlagsEXT)) (zero)-    f--instance FromCStruct PrivateDataSlotCreateInfoEXT where-  peekCStruct p = do-    flags <- peek @PrivateDataSlotCreateFlagsEXT ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlagsEXT))-    pure $ PrivateDataSlotCreateInfoEXT-             flags--instance Storable PrivateDataSlotCreateInfoEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PrivateDataSlotCreateInfoEXT where-  zero = PrivateDataSlotCreateInfoEXT-           zero+-- No documentation found for TopLevel "VkPrivateDataSlotCreateFlagBitsEXT"+type PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits  --- | VkPhysicalDevicePrivateDataFeaturesEXT - Structure specifying physical--- device support------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDevicePrivateDataFeaturesEXT' 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. 'PhysicalDevicePrivateDataFeaturesEXT' /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_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeaturesEXT-  { -- | #features-privateData# @privateData@ indicates whether the-    -- implementation supports private data. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#private-data Private Data>.-    privateData :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDevicePrivateDataFeaturesEXT)-#endif-deriving instance Show PhysicalDevicePrivateDataFeaturesEXT--instance ToCStruct PhysicalDevicePrivateDataFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDevicePrivateDataFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (privateData))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDevicePrivateDataFeaturesEXT where-  peekCStruct p = do-    privateData <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDevicePrivateDataFeaturesEXT-             (bool32ToBool privateData)--instance Storable PhysicalDevicePrivateDataFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDevicePrivateDataFeaturesEXT where-  zero = PhysicalDevicePrivateDataFeaturesEXT-           zero+-- No documentation found for TopLevel "VkDevicePrivateDataCreateInfoEXT"+type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo  -type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlagBitsEXT---- | VkPrivateDataSlotCreateFlagBitsEXT - Bitmask specifying additional--- parameters for private data slot creation------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'PrivateDataSlotCreateFlagsEXT'-newtype PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBitsEXT Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)-+-- No documentation found for TopLevel "VkPrivateDataSlotCreateInfoEXT"+type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo  -conNamePrivateDataSlotCreateFlagBitsEXT :: String-conNamePrivateDataSlotCreateFlagBitsEXT = "PrivateDataSlotCreateFlagBitsEXT"--enumPrefixPrivateDataSlotCreateFlagBitsEXT :: String-enumPrefixPrivateDataSlotCreateFlagBitsEXT = ""--showTablePrivateDataSlotCreateFlagBitsEXT :: [(PrivateDataSlotCreateFlagBitsEXT, String)]-showTablePrivateDataSlotCreateFlagBitsEXT = []--instance Show PrivateDataSlotCreateFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixPrivateDataSlotCreateFlagBitsEXT-                            showTablePrivateDataSlotCreateFlagBitsEXT-                            conNamePrivateDataSlotCreateFlagBitsEXT-                            (\(PrivateDataSlotCreateFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read PrivateDataSlotCreateFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixPrivateDataSlotCreateFlagBitsEXT-                          showTablePrivateDataSlotCreateFlagBitsEXT-                          conNamePrivateDataSlotCreateFlagBitsEXT-                          PrivateDataSlotCreateFlagBitsEXT+-- No documentation found for TopLevel "VkPhysicalDevicePrivateDataFeaturesEXT"+type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures   type EXT_PRIVATE_DATA_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_private_data.hs-boot
@@ -1,170 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_private_data - device extension------ == VK_EXT_private_data------ [__Name String__]---     @VK_EXT_private_data@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     296------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------ [__Contact__]------     -   Matthew Rusch---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_private_data] @mattruschnv%0A<<Here describe the issue or question you have about the VK_EXT_private_data extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-03-25------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Matthew Rusch, NVIDIA------     -   Nuno Subtil, NVIDIA------     -   Piers Daniell, NVIDIA------     -   Jeff Bolz, NVIDIA------ == Description------ The \'VK_EXT_private_data\' extension is a device extension which--- enables attaching arbitrary payloads to Vulkan objects. It introduces--- the idea of private data slots as a means of storing a 64-bit unsigned--- integer of application defined data. Private data slots can be created--- or destroyed any time an associated device is available. Private data--- slots can be reserved at device creation time, and limiting use to the--- amount reserved will allow the extension to exhibit better performance--- characteristics.------ == New Object Types------ -   'Vulkan.Extensions.Handles.PrivateDataSlotEXT'------ == New Commands------ -   'createPrivateDataSlotEXT'------ -   'destroyPrivateDataSlotEXT'------ -   'getPrivateDataEXT'------ -   'setPrivateDataEXT'------ == New Structures------ -   'PrivateDataSlotCreateInfoEXT'------ -   Extending 'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'DevicePrivateDataCreateInfoEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDevicePrivateDataFeaturesEXT'------ == New Enums------ -   'PrivateDataSlotCreateFlagBitsEXT'------ == New Bitmasks------ -   'PrivateDataSlotCreateFlagsEXT'------ == New Enum Constants------ -   'EXT_PRIVATE_DATA_EXTENSION_NAME'------ -   'EXT_PRIVATE_DATA_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':------     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT'------ == Examples------ -   In progress------ == Version History------ -   Revision 1, 2020-01-15 (Matthew Rusch)------     -   Initial draft------ == See Also------ 'DevicePrivateDataCreateInfoEXT',--- 'PhysicalDevicePrivateDataFeaturesEXT',--- 'PrivateDataSlotCreateFlagBitsEXT', 'PrivateDataSlotCreateFlagsEXT',--- 'PrivateDataSlotCreateInfoEXT',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT',--- 'createPrivateDataSlotEXT', 'destroyPrivateDataSlotEXT',--- 'getPrivateDataEXT', 'setPrivateDataEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data 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_private_data  ( DevicePrivateDataCreateInfoEXT-                                              , PhysicalDevicePrivateDataFeaturesEXT-                                              , PrivateDataSlotCreateInfoEXT-                                              ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DevicePrivateDataCreateInfoEXT--instance ToCStruct DevicePrivateDataCreateInfoEXT-instance Show DevicePrivateDataCreateInfoEXT--instance FromCStruct DevicePrivateDataCreateInfoEXT---data PhysicalDevicePrivateDataFeaturesEXT--instance ToCStruct PhysicalDevicePrivateDataFeaturesEXT-instance Show PhysicalDevicePrivateDataFeaturesEXT--instance FromCStruct PhysicalDevicePrivateDataFeaturesEXT---data PrivateDataSlotCreateInfoEXT--instance ToCStruct PrivateDataSlotCreateInfoEXT-instance Show PrivateDataSlotCreateInfoEXT--instance FromCStruct PrivateDataSlotCreateInfoEXT-
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -245,7 +245,7 @@ -- -- When 'PhysicalDeviceProvokingVertexFeaturesEXT' is in the @pNext@ chain -- of 'Vulkan.Core10.Device.DeviceCreateInfo' but the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback feature>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback transform feedback feature> -- is not enabled, the value of @transformFeedbackPreservesProvokingVertex@ -- is ignored. --@@ -266,7 +266,7 @@     -- vertices within each primitive written by transform feedback will     -- preserve the provoking vertex. This does not apply to triangle fan     -- primitives when-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex transformFeedbackPreservesTriangleFanProvokingVertex>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex transformFeedbackPreservesTriangleFanProvokingVertex>     -- is 'Vulkan.Core10.FundamentalTypes.FALSE'.     -- @transformFeedbackPreservesProvokingVertex@ /must/ be     -- 'Vulkan.Core10.FundamentalTypes.FALSE' when the@@ -398,7 +398,7 @@ -- will use the 'PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' mode. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline> -- limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then all pipelines -- bound within a render pass instance /must/ have the same -- @provokingVertexMode@.@@ -408,7 +408,7 @@ -- -   #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883# --     If @provokingVertexMode@ is 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT', --     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -474,7 +474,7 @@ -- = Description -- -- These modes are described more precisely in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topologies Primitive Topologies>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topologies Primitive Topologies>. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs view
@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_queue_family_foreign Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs view
@@ -49,7 +49,7 @@ -- This extension enables the -- 'Vulkan.Core10.Enums.Format.FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16' -- format to be used without a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. -- -- == New Structures@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -172,7 +172,7 @@     -- @subresourceRange.aspectMask@ equal to     -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' without     -- a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>     -- enabled.     formatRgba10x6WithoutYCbCrSampler :: Bool }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot view
@@ -49,7 +49,7 @@ -- This extension enables the -- 'Vulkan.Core10.Enums.Format.FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16' -- format to be used without a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. -- -- == New Structures@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -48,9 +48,9 @@ -- return zero. Rather than allowing multiple possible (0,0,0,x) vectors, -- the out of bounds values are treated as zero, and then missing -- components are inserted based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>. -- -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary.@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -175,10 +175,10 @@ --     of the descriptor. Uniform buffers /must/ be bounds-checked to the --     range of the descriptor, where the range is rounded up to a multiple --     of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>. --     Storage buffers /must/ be bounds-checked to the range of the --     descriptor, where the range is rounded up to a multiple of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>. --     Out of bounds buffer loads will return zero values, and formatted --     loads will have (0,0,1) values inserted for missing G, B, or A --     components based on the format.@@ -210,7 +210,7 @@ -- -- -   #VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000# --     If @robustBufferAccess2@ is enabled then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess> --     /must/ also be enabled -- -- == Valid Usage (Implicit)@@ -303,14 +303,14 @@     -- @robustStorageBufferAccessSizeAlignment@ is the number of bytes that the     -- range of a storage buffer descriptor is rounded up to when used for     -- bounds-checking when-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     -- is enabled. This value /must/ be either 1 or 4.     robustStorageBufferAccessSizeAlignment :: DeviceSize   , -- | #limits-robustUniformBufferAccessSizeAlignment#     -- @robustUniformBufferAccessSizeAlignment@ is the number of bytes that the     -- range of a uniform buffer descriptor is rounded up to when used for     -- bounds-checking when-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>     -- is enabled. This value /must/ be a power of two in the range [1, 256].     robustUniformBufferAccessSizeAlignment :: DeviceSize   }
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -48,9 +48,9 @@ -- return zero. Rather than allowing multiple possible (0,0,0,x) vectors, -- the out of bounds values are treated as zero, and then missing -- components are inserted based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>. -- -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary.@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -163,7 +163,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot view
@@ -163,7 +163,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_scalar_block_layout Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_scalar_block_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs view
@@ -90,7 +90,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_separate_stencil_usage Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_separate_stencil_usage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs view
@@ -79,9 +79,9 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot view
@@ -79,9 +79,9 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs view
@@ -97,13 +97,13 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT> -- -- == Version History --@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot view
@@ -97,13 +97,13 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT> -- -- == Version History --@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Jeff Bolz@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2019-06-01 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -58,7 +67,7 @@ -- The demoted invocation will have no further side effects and will not -- output to the framebuffer, but remains active and can participate in -- computing derivatives and in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>. -- This is a better match for the “discard” instruction in HLSL. -- -- == New Structures@@ -77,12 +86,18 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT' -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT> --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2019-06-01 (Jeff Bolz)@@ -96,108 +111,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation  ( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT+                                                                    , PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT                                                                     , EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION                                                                     , pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION                                                                     , EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME                                                                     , pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME                                                                     ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT))--- | VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT - Structure--- describing the shader demote to helper invocations features that can be--- supported by an implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'--- 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. 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'--- /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_shader_demote_to_helper_invocation VK_EXT_shader_demote_to_helper_invocation>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-  { -- | #features-shaderDemoteToHelperInvocation#-    -- @shaderDemoteToHelperInvocation@ indicates whether the implementation-    -- supports the SPIR-V @DemoteToHelperInvocationEXT@ capability.-    shaderDemoteToHelperInvocation :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES -instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderDemoteToHelperInvocation))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where-  peekCStruct p = do-    shaderDemoteToHelperInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-             (bool32ToBool shaderDemoteToHelperInvocation)--instance Storable PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where-  zero = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"+type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures   type EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot
@@ -1,115 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_shader_demote_to_helper_invocation - device extension------ == VK_EXT_shader_demote_to_helper_invocation------ [__Name String__]---     @VK_EXT_shader_demote_to_helper_invocation@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     277------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Jeff Bolz---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_shader_demote_to_helper_invocation] @jeffbolznv%0A<<Here describe the issue or question you have about the VK_EXT_shader_demote_to_helper_invocation extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2019-06-01------ [__IP Status__]---     No known IP claims.------ [__Interactions and External Dependencies__]------     -   This extension requires---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_demote_to_helper_invocation.html SPV_EXT_demote_to_helper_invocation>------     -   This extension provides API support for---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_demote_to_helper_invocation.txt GL_EXT_demote_to_helper_invocation>------ [__Contributors__]------     -   Jeff Bolz, NVIDIA------ == Description------ This extension adds Vulkan support for the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_demote_to_helper_invocation.html SPV_EXT_demote_to_helper_invocation>--- SPIR-V extension. That SPIR-V extension provides a new instruction--- @OpDemoteToHelperInvocationEXT@ allowing shaders to “demote” a fragment--- shader invocation to behave like a helper invocation for its duration.--- The demoted invocation will have no further side effects and will not--- output to the framebuffer, but remains active and can participate in--- computing derivatives and in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>.--- This is a better match for the “discard” instruction in HLSL.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'------ == New Enum Constants------ -   'EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME'------ -   'EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT'------ == New SPIR-V Capability------ -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>------ == Version History------ -   Revision 1, 2019-06-01 (Jeff Bolz)------     -   Initial draft------ == See Also------ 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation  (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT--instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT--instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot view
@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs view
@@ -77,7 +77,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_stencil_export Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_stencil_export Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs view
@@ -133,7 +133,7 @@ -- Vulkan 1.1 required the @OpGroupNonUniformBroadcast@ “Id” to be -- constant. This restriction was removed in Vulkan 1.2 with the addition -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroupBroadcastDynamicId subgroupBroadcastDynamicId>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupBroadcastDynamicId subgroupBroadcastDynamicId> -- feature. -- -- == New Enum Constants@@ -144,23 +144,23 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgeq SubgroupEqMaskKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgeq SubgroupEqMaskKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgge SubgroupGeMaskKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgge SubgroupGeMaskKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sggt SubgroupGtMaskKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sggt SubgroupGtMaskKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgle SubgroupLeMaskKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgle SubgroupLeMaskKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sglt SubgroupLtMaskKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sglt SubgroupLtMaskKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgli SubgroupLocalInvocationId>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgli SubgroupLocalInvocationId> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupBallotKHR SubgroupBallotKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupBallotKHR SubgroupBallotKHR> -- -- == Version History --@@ -175,7 +175,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_subgroup_ballot Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_subgroup_ballot Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs view
@@ -144,7 +144,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupVoteKHR SubgroupVoteKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupVoteKHR SubgroupVoteKHR> -- -- == Version History --@@ -159,7 +159,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_subgroup_vote Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_subgroup_vote Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs view
@@ -96,13 +96,13 @@ -- -- The single @ShaderViewportIndexLayerEXT@ capability from the -- @SPV_EXT_shader_viewport_index_layer@ extension is replaced by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderLayer ShaderLayer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderLayer ShaderLayer> -- capabilities from SPIR-V 1.5 which are enabled by the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputLayer shaderOutputLayer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputLayer shaderOutputLayer> -- features, respectively. Additionally, if Vulkan 1.2 is supported but -- this extension is not, these capabilities are optional. --@@ -118,14 +118,14 @@ -- == New or Modified Built-In Variables -- -- -   (modified)---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer> -- -- -   (modified)---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerEXT>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerEXT> -- -- == Version History --@@ -140,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_viewport_index_layer Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_viewport_index_layer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.1 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Neil Henning@@ -31,6 +36,10 @@ -- [__Last Modified Date__] --     2019-03-05 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__Contributors__] -- --     -   Jeff Bolz, NVIDIA@@ -76,20 +85,20 @@ -- enable that pipeline to vary its subgroup size. If enabled, any -- @SubgroupSize@ decorated variables in the SPIR-V shader modules provided -- to pipeline creation /may/ vary between the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minSubgroupSize minimum>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minimum> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maximum>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maximum> -- subgroup sizes. -- -- An implementation is also optionally allowed to support specifying a -- required subgroup size for a given pipeline stage. Implementations -- advertise which--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages stages support a required subgroup size>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages stages support a required subgroup size>, -- and any pipeline of a supported stage can be passed a -- 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT' structure to set -- the subgroup size for that shader stage of the pipeline. For compute -- shaders, this requires the developer to query the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups> -- and ensure that: -- -- \[s = { WorkGroupSize.x \times WorkGroupSize.y \times WorkgroupSize.z \leq SubgroupSize \times maxComputeWorkgroupSubgroups }\]@@ -125,18 +134,24 @@ -- -   Extending --     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits': -----     -   'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+--     -   'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' -----     -   'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+--     -   'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2019-03-05 (Neil Henning)@@ -157,319 +172,65 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_subgroup_size_control 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_subgroup_size_control  ( PhysicalDeviceSubgroupSizeControlFeaturesEXT(..)-                                                       , PhysicalDeviceSubgroupSizeControlPropertiesEXT(..)-                                                       , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_subgroup_size_control  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT+                                                       , pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT+                                                       , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT+                                                       , pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT+                                                       , pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT+                                                       , PhysicalDeviceSubgroupSizeControlFeaturesEXT+                                                       , PhysicalDeviceSubgroupSizeControlPropertiesEXT+                                                       , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT                                                        , EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION                                                        , pattern EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION                                                        , EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME                                                        , pattern EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME                                                        ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT))--- | VkPhysicalDeviceSubgroupSizeControlFeaturesEXT - Structure describing--- the subgroup size control features that can be supported by an--- implementation------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' 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. 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' /can/ also be--- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- selectively enable these features.------ Note------ The 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' structure was added--- in version 2 of the @VK_EXT_subgroup_size_control@ extension. Version 1--- implementations of this extension will not fill out the features--- structure but applications may assume that both @subgroupSizeControl@--- and @computeFullSubgroups@ are supported if the extension is supported.--- (See also the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-requirements Feature Requirements>--- section.) Applications are advised to add a--- 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' structure to the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features--- regardless of the version of the extension supported by the--- implementation. If the implementation only supports version 1, it will--- safely ignore the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'--- structure.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeaturesEXT-  { -- | #features-subgroupSizeControl# @subgroupSizeControl@ indicates whether-    -- the implementation supports controlling shader subgroup sizes via the-    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'-    -- flag and the 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'-    -- structure.-    subgroupSizeControl :: Bool-  , -- | #features-computeFullSubgroups# @computeFullSubgroups@ indicates whether-    -- the implementation supports requiring full subgroups in compute shaders-    -- via the-    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'-    -- flag.-    computeFullSubgroups :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceSubgroupSizeControlFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceSubgroupSizeControlFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures)+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties)+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES -instance ToCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceSubgroupSizeControlFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (subgroupSizeControl))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (computeFullSubgroups))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_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))-    f -instance FromCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT where-  peekCStruct p = do-    subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    pure $ PhysicalDeviceSubgroupSizeControlFeaturesEXT-             (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO -instance Storable PhysicalDeviceSubgroupSizeControlFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceSubgroupSizeControlFeaturesEXT where-  zero = PhysicalDeviceSubgroupSizeControlFeaturesEXT-           zero-           zero+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES  --- | VkPhysicalDeviceSubgroupSizeControlPropertiesEXT - Structure describing--- the control subgroup size properties of an implementation------ = Description------ If the 'PhysicalDeviceSubgroupSizeControlPropertiesEXT' 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.------ If--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedOperations@--- includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad >,--- @minSubgroupSize@ /must/ be greater than or equal to 4.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlPropertiesEXT-  { -- | #limits-minSubgroupSize# @minSubgroupSize@ is the minimum subgroup size-    -- supported by this device. @minSubgroupSize@ is at least one if any of-    -- the physical device’s queues support-    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or-    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @minSubgroupSize@-    -- is a power-of-two. @minSubgroupSize@ is less than or equal to-    -- @maxSubgroupSize@. @minSubgroupSize@ is less than or equal to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.-    minSubgroupSize :: Word32-  , -- | #limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum subgroup size-    -- supported by this device. @maxSubgroupSize@ is at least one if any of-    -- the physical device’s queues support-    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or-    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @maxSubgroupSize@-    -- is a power-of-two. @maxSubgroupSize@ is greater than or equal to-    -- @minSubgroupSize@. @maxSubgroupSize@ is greater than or equal to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.-    maxSubgroupSize :: Word32-  , -- | #limits-maxComputeWorkgroupSubgroups# @maxComputeWorkgroupSubgroups@ is-    -- the maximum number of subgroups supported by the implementation within a-    -- workgroup.-    maxComputeWorkgroupSubgroups :: Word32-  , -- | #limits-requiredSubgroupSizeStages# @requiredSubgroupSizeStages@ is a-    -- bitfield of what shader stages support having a required subgroup size-    -- specified.-    requiredSubgroupSizeStages :: ShaderStageFlags-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceSubgroupSizeControlPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceSubgroupSizeControlPropertiesEXT+-- No documentation found for TopLevel "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"+pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT -instance ToCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceSubgroupSizeControlPropertiesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (minSubgroupSize)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxSubgroupSize)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxComputeWorkgroupSubgroups)-    poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (requiredSubgroupSizeStages)-    f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (zero)-    f -instance FromCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT where-  peekCStruct p = do-    minSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    maxSubgroupSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))-    requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))-    pure $ PhysicalDeviceSubgroupSizeControlPropertiesEXT-             minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages+-- No documentation found for TopLevel "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"+pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT -instance Storable PhysicalDeviceSubgroupSizeControlPropertiesEXT where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceSubgroupSizeControlPropertiesEXT where-  zero = PhysicalDeviceSubgroupSizeControlPropertiesEXT-           zero-           zero-           zero-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT"+type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures  --- | VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT - Structure--- specifying the required subgroup size of a newly created pipeline shader--- stage------ = Description------ If a 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', it specifies--- that the pipeline shader stage being compiled has a required subgroup--- size.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-  { -- | #pipelines-required-subgroup-size# @requiredSubgroupSize@ is an unsigned-    -- integer value specifying the required subgroup size for the newly-    -- created pipeline shader stage.-    ---    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02760#-    -- @requiredSubgroupSize@ /must/ be a power-of-two integer-    ---    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02761#-    -- @requiredSubgroupSize@ /must/ be greater or equal to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>-    ---    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02762#-    -- @requiredSubgroupSize@ /must/ be less than or equal to-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>-    requiredSubgroupSize :: Word32 }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)-#endif-deriving instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT+-- No documentation found for TopLevel "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT"+type PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties -instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (requiredSubgroupSize)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    f -instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where-  peekCStruct p = do-    requiredSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    pure $ PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-             requiredSubgroupSize--instance Storable PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where-  zero = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-           zero+-- No documentation found for TopLevel "VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"+type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo   type EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION = 2
− src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot
@@ -1,195 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_subgroup_size_control - device extension------ == VK_EXT_subgroup_size_control------ [__Name String__]---     @VK_EXT_subgroup_size_control@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     226------ [__Revision__]---     2------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.1------ [__Contact__]------     -   Neil Henning---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_subgroup_size_control] @sheredom%0A<<Here describe the issue or question you have about the VK_EXT_subgroup_size_control extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2019-03-05------ [__Contributors__]------     -   Jeff Bolz, NVIDIA------     -   Jason Ekstrand, Intel------     -   Sławek Grajewski, Intel------     -   Jesse Hall, Google------     -   Neil Henning, AMD------     -   Daniel Koch, NVIDIA------     -   Jeff Leger, Qualcomm------     -   Graeme Leese, Broadcom------     -   Allan MacKinnon, Google------     -   Mariusz Merecki, Intel------     -   Graham Wihlidal, Electronic Arts------ == Description------ This extension enables an implementation to control the subgroup size by--- allowing a varying subgroup size and also specifying a required subgroup--- size.------ It extends the subgroup support in Vulkan 1.1 to allow an implementation--- to expose a varying subgroup size. Previously Vulkan exposed a single--- subgroup size per physical device, with the expectation that--- implementations will behave as if all subgroups have the same size. Some--- implementations /may/ dispatch shaders with a varying subgroup size for--- different subgroups. As a result they could implicitly split a large--- subgroup into smaller subgroups or represent a small subgroup as a--- larger subgroup, some of whose invocations were inactive on launch.------ To aid developers in understanding the performance characteristics of--- their programs, this extension exposes a minimum and maximum subgroup--- size that a physical device supports and a pipeline create flag to--- enable that pipeline to vary its subgroup size. If enabled, any--- @SubgroupSize@ decorated variables in the SPIR-V shader modules provided--- to pipeline creation /may/ vary between the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minSubgroupSize minimum>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maximum>--- subgroup sizes.------ An implementation is also optionally allowed to support specifying a--- required subgroup size for a given pipeline stage. Implementations--- advertise which--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages stages support a required subgroup size>,--- and any pipeline of a supported stage can be passed a--- 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT' structure to set--- the subgroup size for that shader stage of the pipeline. For compute--- shaders, this requires the developer to query the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>--- and ensure that:------ \[s = { WorkGroupSize.x \times WorkGroupSize.y \times WorkgroupSize.z \leq SubgroupSize \times maxComputeWorkgroupSubgroups }\]------ Developers can also specify a new pipeline shader stage create flag that--- requires the implementation to have fully populated subgroups within--- local workgroups. This requires the workgroup size in the X dimension to--- be a multiple of the subgroup size.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceSubgroupSizeControlFeaturesEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------     -   'PhysicalDeviceSubgroupSizeControlPropertiesEXT'------ -   Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo':------     -   'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'------ == New Enum Constants------ -   'EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME'------ -   'EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits':------     -   'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'------     -   'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT'------ == Version History------ -   Revision 1, 2019-03-05 (Neil Henning)------     -   Initial draft------ -   Revision 2, 2019-07-26 (Jason Ekstrand)------     -   Add the missing 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'---         for querying subgroup size control features.------ == See Also------ 'PhysicalDeviceSubgroupSizeControlFeaturesEXT',--- 'PhysicalDeviceSubgroupSizeControlPropertiesEXT',--- 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control 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_subgroup_size_control  ( PhysicalDeviceSubgroupSizeControlFeaturesEXT-                                                       , PhysicalDeviceSubgroupSizeControlPropertiesEXT-                                                       , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-                                                       ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceSubgroupSizeControlFeaturesEXT--instance ToCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT-instance Show PhysicalDeviceSubgroupSizeControlFeaturesEXT--instance FromCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT---data PhysicalDeviceSubgroupSizeControlPropertiesEXT--instance ToCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT-instance Show PhysicalDeviceSubgroupSizeControlPropertiesEXT--instance FromCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT---data PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT--instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT--instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-
src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs view
@@ -133,7 +133,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_colorspace Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_swapchain_colorspace Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Jeff Bolz@@ -33,10 +38,14 @@ -- [__Last Modified Date__] --     2019-06-06 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. ----- [__Interactions and External Dependencies__; __Contributors__]+-- [__Contributors__] -- --     -   Jeff Bolz, NVIDIA --@@ -70,8 +79,15 @@ -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, only the properties structure is promoted.+-- The feature structure is not promoted. The original type name is still+-- available as an alias of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2019-06-06 (Jeff Bolz)@@ -86,12 +102,13 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment 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_texel_buffer_alignment  ( PhysicalDeviceTexelBufferAlignmentFeaturesEXT(..)-                                                        , PhysicalDeviceTexelBufferAlignmentPropertiesEXT(..)+module Vulkan.Extensions.VK_EXT_texel_buffer_alignment  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT+                                                        , PhysicalDeviceTexelBufferAlignmentFeaturesEXT(..)+                                                        , PhysicalDeviceTexelBufferAlignmentPropertiesEXT                                                         , EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION                                                         , pattern EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION                                                         , EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME@@ -118,10 +135,14 @@ import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES++ -- | VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - Structure describing -- the texel buffer alignment features that can be supported by an -- implementation@@ -152,7 +173,9 @@ data PhysicalDeviceTexelBufferAlignmentFeaturesEXT = PhysicalDeviceTexelBufferAlignmentFeaturesEXT   { -- | #features-texelBufferAlignment# @texelBufferAlignment@ indicates whether     -- the implementation uses more specific alignment requirements advertised-    -- in 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT' rather than+    -- in+    -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'+    -- rather than     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@.     texelBufferAlignment :: Bool }   deriving (Typeable, Eq)@@ -193,114 +216,8 @@            zero  --- | VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT - Structure describing--- the texel buffer alignment requirements supported by an implementation------ = Description------ If the 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT' 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.------ If the single texel alignment property is--- 'Vulkan.Core10.FundamentalTypes.FALSE', then the buffer view’s offset--- /must/ be aligned to the corresponding byte alignment value. If the--- single texel alignment property is--- 'Vulkan.Core10.FundamentalTypes.TRUE', then the buffer view’s offset--- /must/ be aligned to the lesser of the corresponding byte alignment--- value or the size of a single texel, based on--- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@format@. If the size--- of a single texel is a multiple of three bytes, then the size of a--- single component of the format is used instead.------ These limits /must/ not advertise a larger alignment than the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-required required>--- maximum minimum value of--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@,--- for any format that supports use as a texel buffer.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment VK_EXT_texel_buffer_alignment>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentPropertiesEXT-  { -- | #limits-storageTexelBufferOffsetAlignmentBytes#-    -- @storageTexelBufferOffsetAlignmentBytes@ is a byte alignment that is-    -- sufficient for a storage texel buffer of any format. The value /must/ be-    -- a power of two.-    storageTexelBufferOffsetAlignmentBytes :: DeviceSize-  , -- | #limits-storageTexelBufferOffsetSingleTexelAlignment#-    -- @storageTexelBufferOffsetSingleTexelAlignment@ indicates whether single-    -- texel alignment is sufficient for a storage texel buffer of any format.-    -- The value /must/ be a power of two.-    storageTexelBufferOffsetSingleTexelAlignment :: Bool-  , -- | #limits-uniformTexelBufferOffsetAlignmentBytes#-    -- @uniformTexelBufferOffsetAlignmentBytes@ is a byte alignment that is-    -- sufficient for a uniform texel buffer of any format. The value /must/ be-    -- a power of two.-    uniformTexelBufferOffsetAlignmentBytes :: DeviceSize-  , -- | #limits-uniformTexelBufferOffsetSingleTexelAlignment#-    -- @uniformTexelBufferOffsetSingleTexelAlignment@ indicates whether single-    -- texel alignment is sufficient for a uniform texel buffer of any format.-    -- The value /must/ be a power of two.-    uniformTexelBufferOffsetSingleTexelAlignment :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceTexelBufferAlignmentPropertiesEXT--instance ToCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT where-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceTexelBufferAlignmentPropertiesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (storageTexelBufferOffsetAlignmentBytes)-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (storageTexelBufferOffsetSingleTexelAlignment))-    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (uniformTexelBufferOffsetAlignmentBytes)-    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (uniformTexelBufferOffsetSingleTexelAlignment))-    f-  cStructSize = 48-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT where-  peekCStruct p = do-    storageTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))-    storageTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))-    uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))-    uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))-    pure $ PhysicalDeviceTexelBufferAlignmentPropertiesEXT-             storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment)--instance Storable PhysicalDeviceTexelBufferAlignmentPropertiesEXT where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceTexelBufferAlignmentPropertiesEXT where-  zero = PhysicalDeviceTexelBufferAlignmentPropertiesEXT-           zero-           zero-           zero-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT"+type PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties   type EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Jeff Bolz@@ -33,10 +38,14 @@ -- [__Last Modified Date__] --     2019-06-06 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. ----- [__Interactions and External Dependencies__; __Contributors__]+-- [__Contributors__] -- --     -   Jeff Bolz, NVIDIA --@@ -70,8 +79,15 @@ -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, only the properties structure is promoted.+-- The feature structure is not promoted. The original type name is still+-- available as an alias of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2019-06-06 (Jeff Bolz)@@ -86,13 +102,11 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment 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_texel_buffer_alignment  ( PhysicalDeviceTexelBufferAlignmentFeaturesEXT-                                                        , PhysicalDeviceTexelBufferAlignmentPropertiesEXT-                                                        ) where+module Vulkan.Extensions.VK_EXT_texel_buffer_alignment  (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) where  import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct)@@ -104,12 +118,4 @@ instance Show PhysicalDeviceTexelBufferAlignmentFeaturesEXT  instance FromCStruct PhysicalDeviceTexelBufferAlignmentFeaturesEXT---data PhysicalDeviceTexelBufferAlignmentPropertiesEXT--instance ToCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT-instance Show PhysicalDeviceTexelBufferAlignmentPropertiesEXT--instance FromCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT 
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Jan-Harald Fredriksen@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2019-05-28 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known issues. --@@ -47,7 +56,7 @@ -- -- When this extension is enabled, the HDR profile is supported for all -- ASTC formats listed in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>. -- -- == New Structures --@@ -65,38 +74,46 @@ -- -- -   Extending 'Vulkan.Core10.Enums.Format.Format': -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT'+--     -   'FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. Functionality in this+-- extension is included in core Vulkan 1.3, with the EXT suffix omitted.+-- However, the feature is made optional in Vulkan 1.3. The original type,+-- enum and command names are still available as aliases of the core+-- functionality.+-- -- == Issues -- -- 1) Should we add a feature or limit for this functionality?@@ -136,148 +153,111 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr 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_texture_compression_astc_hdr  ( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT+                                                              , pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT+                                                              , pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT+                                                              , PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT                                                               , EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION                                                               , pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION                                                               , EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME                                                               , pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME                                                               ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT))--- | VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT - Structure--- describing ASTC HDR features that can be supported by an implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' 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. 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' /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_texture_compression_astc_hdr VK_EXT_texture_compression_astc_hdr>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-  { -- | #features-textureCompressionASTC_HDR# @textureCompressionASTC_HDR@-    -- indicates whether all of the ASTC HDR compressed texture formats are-    -- supported. If this feature is enabled, then the-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'-    -- and-    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'-    -- features /must/ be supported in @optimalTilingFeatures@ for the-    -- following formats:-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT'-    ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT'-    ---    -- To query for additional properties, or if the feature is not enabled,-    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'-    -- and-    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'-    -- /can/ be used to check for supported properties of individual formats as-    -- normal.-    textureCompressionASTC_HDR :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x10_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x6_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x8_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_12x10_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_12x12_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_4x4_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_5x4_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_5x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_6x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_6x6_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_8x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_8x6_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_8x8_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES -instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_HDR))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where-  peekCStruct p = do-    textureCompressionASTC_HDR <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-             (bool32ToBool textureCompressionASTC_HDR)+-- No documentation found for TopLevel "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = FORMAT_ASTC_4x4_SFLOAT_BLOCK -instance Storable PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where-  zero = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-           zero+-- No documentation found for TopLevel "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = FORMAT_ASTC_5x4_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_5x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_6x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = FORMAT_ASTC_6x6_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_8x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = FORMAT_ASTC_8x6_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = FORMAT_ASTC_8x8_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x6_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x8_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x10_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = FORMAT_ASTC_12x10_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = FORMAT_ASTC_12x12_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT"+type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures   type EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot
@@ -1,155 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_texture_compression_astc_hdr - device extension------ == VK_EXT_texture_compression_astc_hdr------ [__Name String__]---     @VK_EXT_texture_compression_astc_hdr@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     67------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Jan-Harald Fredriksen---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_texture_compression_astc_hdr] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_texture_compression_astc_hdr extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2019-05-28------ [__IP Status__]---     No known issues.------ [__Contributors__]------     -   Jan-Harald Fredriksen, Arm------ == Description------ This extension adds support for textures compressed using the Adaptive--- Scalable Texture Compression (ASTC) High Dynamic Range (HDR) profile.------ When this extension is enabled, the HDR profile is supported for all--- ASTC formats listed in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'------ == New Enum Constants------ -   'EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME'------ -   'EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.Format.Format':------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT'------     -   'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT'------ == Issues------ 1) Should we add a feature or limit for this functionality?------ Yes. It is consistent with the ASTC LDR support to add a feature like--- textureCompressionASTC_HDR.------ The feature is strictly speaking redundant as long as this is just an--- extension; it would be sufficient to just enable the extension. But--- adding the feature is more forward-looking if wanted to make this an--- optional core feature in the future.------ 2) Should we introduce new format enums for HDR?------ Yes. Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it is--- confusing to make these contain HDR data. Note that the OpenGL (ES)--- extensions did not make this distinction because a single ASTC HDR--- texture may contain both unorm and float blocks. Implementations /may/--- not be able to distinguish between LDR and HDR ASTC textures internally--- and just treat them as the same format, i.e. if this extension is--- supported then sampling from a--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK' image format--- /may/ return HDR results. Applications /can/ get predictable results by--- using the appropriate image format.------ == Version History------ -   Revision 1, 2019-05-28 (Jan-Harald Fredriksen)------     -   Initial version------ == See Also------ 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr 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_texture_compression_astc_hdr  (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT--instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-instance Show PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT--instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_tooling_info.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Tobias Hector@@ -31,6 +36,10 @@ -- [__Last Modified Date__] --     2018-11-05 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__Contributors__] -- --     -   Rolando Caloca@@ -87,34 +96,43 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker VK_EXT_debug_marker> -- is supported: ----- -   Extending 'ToolPurposeFlagBitsEXT':+-- -   Extending+--     'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits': -----     -   'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'+--     -   'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report> -- is supported: ----- -   Extending 'ToolPurposeFlagBitsEXT':+-- -   Extending+--     'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits': -----     -   'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'+--     -   'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils> -- is supported: ----- -   Extending 'ToolPurposeFlagBitsEXT':+-- -   Extending+--     'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits': -----     -   'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'+--     -   'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' -----     -   'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'+--     -   'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Examples -- -- __Printing Tool Information__@@ -163,331 +181,45 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_tooling_info 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_tooling_info  ( getPhysicalDeviceToolPropertiesEXT-                                              , PhysicalDeviceToolPropertiesEXT(..)+module Vulkan.Extensions.VK_EXT_tooling_info  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT+                                              , getPhysicalDeviceToolPropertiesEXT                                               , ToolPurposeFlagsEXT-                                              , ToolPurposeFlagBitsEXT( TOOL_PURPOSE_VALIDATION_BIT_EXT-                                                                      , TOOL_PURPOSE_PROFILING_BIT_EXT-                                                                      , TOOL_PURPOSE_TRACING_BIT_EXT-                                                                      , TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT-                                                                      , TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT-                                                                      , TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT-                                                                      , TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT-                                                                      , ..-                                                                      )+                                              , ToolPurposeFlagBitsEXT+                                              , PhysicalDeviceToolPropertiesEXT                                               , EXT_TOOLING_INFO_SPEC_VERSION                                               , pattern EXT_TOOLING_INFO_SPEC_VERSION                                               , EXT_TOOLING_INFO_EXTENSION_NAME                                               , pattern EXT_TOOLING_INFO_EXTENSION_NAME                                               ) where -import Vulkan.CStruct.Utils (FixedArray)-import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Exception.Base (bracket)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Marshal.Alloc (callocBytes)-import Foreign.Marshal.Alloc (free)-import GHC.Base (when)-import GHC.IO (throwIO)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showString)-import Numeric (showHex)-import Data.ByteString (packCString)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Data.Vector (generateM)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero)-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.Bits (Bits)-import Data.Bits (FiniteBits) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.C.Types (CChar)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.ByteString (ByteString)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.CStruct.Utils (lowerArrayPtr)-import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceToolPropertiesEXT))-import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)-import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)-import Vulkan.Core10.Handles (PhysicalDevice)-import Vulkan.Core10.Handles (PhysicalDevice(..))-import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))-import Vulkan.Core10.Handles (PhysicalDevice_T)-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetPhysicalDeviceToolPropertiesEXT-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolPropertiesEXT -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolPropertiesEXT -> IO Result+import Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (getPhysicalDeviceToolProperties)+import Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties)+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlagBits)+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES --- | vkGetPhysicalDeviceToolPropertiesEXT - Reports properties of tools--- active on the specified physical device------ = Description------ If @pToolProperties@ is @NULL@, then the number of tools currently--- active on @physicalDevice@ is returned in @pToolCount@. Otherwise,--- @pToolCount@ /must/ point to a variable set by the user to the number of--- elements in the @pToolProperties@ array, and on return the variable is--- overwritten with the number of structures actually written to--- @pToolProperties@. If @pToolCount@ is less than the number of currently--- active tools, at most @pToolCount@ structures will be written.------ The count and properties of active tools /may/ change in response to--- events outside the scope of the specification. An application /should/--- assume these properties might change at any given time.------ == Valid Usage (Implicit)------ -   #VUID-vkGetPhysicalDeviceToolPropertiesEXT-physicalDevice-parameter#---     @physicalDevice@ /must/ be a valid---     'Vulkan.Core10.Handles.PhysicalDevice' handle------ -   #VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolCount-parameter#---     @pToolCount@ /must/ be a valid pointer to a @uint32_t@ value------ -   #VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolProperties-parameter#---     If the value referenced by @pToolCount@ is not @0@, and---     @pToolProperties@ is not @NULL@, @pToolProperties@ /must/ be a valid---     pointer to an array of @pToolCount@---     'PhysicalDeviceToolPropertiesEXT' structures------ == Return Codes------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]------     -   'Vulkan.Core10.Enums.Result.SUCCESS'------     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'------ [<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'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,--- 'Vulkan.Core10.Handles.PhysicalDevice',--- 'PhysicalDeviceToolPropertiesEXT'-getPhysicalDeviceToolPropertiesEXT :: forall io-                                    . (MonadIO io)-                                   => -- | @physicalDevice@ is the handle to the physical device to query for-                                      -- active tools.-                                      PhysicalDevice-                                   -> io (Result, ("toolProperties" ::: Vector PhysicalDeviceToolPropertiesEXT))-getPhysicalDeviceToolPropertiesEXT physicalDevice = liftIO . evalContT $ do-  let vkGetPhysicalDeviceToolPropertiesEXTPtr = pVkGetPhysicalDeviceToolPropertiesEXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)-  lift $ unless (vkGetPhysicalDeviceToolPropertiesEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceToolPropertiesEXT is null" Nothing Nothing-  let vkGetPhysicalDeviceToolPropertiesEXT' = mkVkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXTPtr-  let physicalDevice' = physicalDeviceHandle (physicalDevice)-  pPToolCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolPropertiesEXT" (vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) (nullPtr))-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))-  pToolCount <- lift $ peek @Word32 pPToolCount-  pPToolProperties <- ContT $ bracket (callocBytes @PhysicalDeviceToolPropertiesEXT ((fromIntegral (pToolCount)) * 1048)) free-  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPToolProperties `advancePtrBytes` (i * 1048) :: Ptr PhysicalDeviceToolPropertiesEXT) . ($ ())) [0..(fromIntegral (pToolCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolPropertiesEXT" (vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) ((pPToolProperties)))-  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))-  pToolCount' <- lift $ peek @Word32 pPToolCount-  pToolProperties' <- lift $ generateM (fromIntegral (pToolCount')) (\i -> peekCStruct @PhysicalDeviceToolPropertiesEXT (((pPToolProperties) `advancePtrBytes` (1048 * (i)) :: Ptr PhysicalDeviceToolPropertiesEXT)))-  pure $ ((r'), pToolProperties') +-- No documentation found for TopLevel "vkGetPhysicalDeviceToolPropertiesEXT"+getPhysicalDeviceToolPropertiesEXT = getPhysicalDeviceToolProperties --- | VkPhysicalDeviceToolPropertiesEXT - Structure providing information--- about an active tool------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'ToolPurposeFlagsEXT', 'getPhysicalDeviceToolPropertiesEXT'-data PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolPropertiesEXT-  { -- | @name@ is a null-terminated UTF-8 string containing the name of the-    -- tool.-    name :: ByteString-  , -- | @version@ is a null-terminated UTF-8 string containing the version of-    -- the tool.-    version :: ByteString-  , -- | @purposes@ is a bitmask of 'ToolPurposeFlagBitsEXT' which is populated-    -- with purposes supported by the tool.-    purposes :: ToolPurposeFlagsEXT-  , -- | @description@ is a null-terminated UTF-8 string containing a description-    -- of the tool.-    description :: ByteString-  , -- | @layer@ is a null-terminated UTF-8 string containing the name of the-    -- layer implementing the tool, if the tool is implemented in a layer --    -- otherwise it /may/ be an empty string.-    layer :: ByteString-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceToolPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceToolPropertiesEXT -instance ToCStruct PhysicalDeviceToolPropertiesEXT where-  withCStruct x f = allocaBytes 1048 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceToolPropertiesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (name)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (version)-    poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlagsEXT)) (purposes)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (layer)-    f-  cStructSize = 1048-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)-    poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlagsEXT)) (zero)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)-    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)-    f+-- No documentation found for TopLevel "VkToolPurposeFlagsEXT"+type ToolPurposeFlagsEXT = ToolPurposeFlags -instance FromCStruct PhysicalDeviceToolPropertiesEXT where-  peekCStruct p = do-    name <- packCString (lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))-    version <- packCString (lowerArrayPtr ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))-    purposes <- peek @ToolPurposeFlagsEXT ((p `plusPtr` 528 :: Ptr ToolPurposeFlagsEXT))-    description <- packCString (lowerArrayPtr ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))-    layer <- packCString (lowerArrayPtr ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))-    pure $ PhysicalDeviceToolPropertiesEXT-             name version purposes description layer -instance Storable PhysicalDeviceToolPropertiesEXT where-  sizeOf ~_ = 1048-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceToolPropertiesEXT where-  zero = PhysicalDeviceToolPropertiesEXT-           mempty-           mempty-           zero-           mempty-           mempty+-- No documentation found for TopLevel "VkToolPurposeFlagBitsEXT"+type ToolPurposeFlagBitsEXT = ToolPurposeFlagBits  -type ToolPurposeFlagsEXT = ToolPurposeFlagBitsEXT---- | VkToolPurposeFlagBitsEXT - Bitmask specifying the purposes of an active--- tool------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,--- 'ToolPurposeFlagsEXT'-newtype ToolPurposeFlagBitsEXT = ToolPurposeFlagBitsEXT Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'TOOL_PURPOSE_VALIDATION_BIT_EXT' specifies that the tool provides--- validation of API usage.-pattern TOOL_PURPOSE_VALIDATION_BIT_EXT          = ToolPurposeFlagBitsEXT 0x00000001--- | 'TOOL_PURPOSE_PROFILING_BIT_EXT' specifies that the tool provides--- profiling of API usage.-pattern TOOL_PURPOSE_PROFILING_BIT_EXT           = ToolPurposeFlagBitsEXT 0x00000002--- | 'TOOL_PURPOSE_TRACING_BIT_EXT' specifies that the tool is capturing data--- about the application’s API usage, including anything from simple--- logging to capturing data for later replay.-pattern TOOL_PURPOSE_TRACING_BIT_EXT             = ToolPurposeFlagBitsEXT 0x00000004--- | 'TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT' specifies that the tool--- provides additional API features\/extensions on top of the underlying--- implementation.-pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000008--- | 'TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT' specifies that the tool--- modifies the API features\/limits\/extensions presented to the--- application.-pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT  = ToolPurposeFlagBitsEXT 0x00000010--- | 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' specifies that the tool consumes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-debug-markers debug markers>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-debug-annotation object debug annotation>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-queue-labels queue labels>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-command-buffer-labels command buffer labels>-pattern TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT       = ToolPurposeFlagBitsEXT 0x00000040--- | 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' specifies that the tool reports--- additional information to the application via callbacks specified by--- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT' or--- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT'-pattern TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT     = ToolPurposeFlagBitsEXT 0x00000020--conNameToolPurposeFlagBitsEXT :: String-conNameToolPurposeFlagBitsEXT = "ToolPurposeFlagBitsEXT"--enumPrefixToolPurposeFlagBitsEXT :: String-enumPrefixToolPurposeFlagBitsEXT = "TOOL_PURPOSE_"--showTableToolPurposeFlagBitsEXT :: [(ToolPurposeFlagBitsEXT, String)]-showTableToolPurposeFlagBitsEXT =-  [ (TOOL_PURPOSE_VALIDATION_BIT_EXT         , "VALIDATION_BIT_EXT")-  , (TOOL_PURPOSE_PROFILING_BIT_EXT          , "PROFILING_BIT_EXT")-  , (TOOL_PURPOSE_TRACING_BIT_EXT            , "TRACING_BIT_EXT")-  , (TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT, "ADDITIONAL_FEATURES_BIT_EXT")-  , (TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT , "MODIFYING_FEATURES_BIT_EXT")-  , (TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT      , "DEBUG_MARKERS_BIT_EXT")-  , (TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT    , "DEBUG_REPORTING_BIT_EXT")-  ]--instance Show ToolPurposeFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixToolPurposeFlagBitsEXT-                            showTableToolPurposeFlagBitsEXT-                            conNameToolPurposeFlagBitsEXT-                            (\(ToolPurposeFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read ToolPurposeFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixToolPurposeFlagBitsEXT-                          showTableToolPurposeFlagBitsEXT-                          conNameToolPurposeFlagBitsEXT-                          ToolPurposeFlagBitsEXT+-- No documentation found for TopLevel "VkPhysicalDeviceToolPropertiesEXT"+type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties   type EXT_TOOLING_INFO_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot
@@ -1,182 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_tooling_info - device extension------ == VK_EXT_tooling_info------ [__Name String__]---     @VK_EXT_tooling_info@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     246------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------ [__Contact__]------     -   Tobias Hector---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_tooling_info] @tobski%0A<<Here describe the issue or question you have about the VK_EXT_tooling_info extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2018-11-05------ [__Contributors__]------     -   Rolando Caloca------     -   Matthaeus Chajdas------     -   Baldur Karlsson------     -   Daniel Rakos------ == Description------ When an error occurs during application development, a common question--- is \"What tools are actually running right now?\" This extension adds--- the ability to query that information directly from the Vulkan--- implementation.------ Outdated versions of one tool might not play nicely with another, or--- perhaps a tool is not actually running when it should have been. Trying--- to figure that out can cause headaches as it is necessary to consult--- each known tool to figure out what is going on — in some cases the tool--- might not even be known.------ Typically, the expectation is that developers will simply print out this--- information for visual inspection when an issue occurs, however a small--- amount of semantic information about what the tool is doing is provided--- to help identify it programmatically. For example, if the advertised--- limits or features of an implementation are unexpected, is there a tool--- active which modifies these limits? Or if an application is providing--- debug markers, but the implementation is not actually doing anything--- with that information, this can quickly point that out.------ == New Commands------ -   'getPhysicalDeviceToolPropertiesEXT'------ == New Structures------ -   'PhysicalDeviceToolPropertiesEXT'------ == New Enums------ -   'ToolPurposeFlagBitsEXT'------ == New Bitmasks------ -   'ToolPurposeFlagsEXT'------ == New Enum Constants------ -   'EXT_TOOLING_INFO_EXTENSION_NAME'------ -   'EXT_TOOLING_INFO_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker VK_EXT_debug_marker>--- is supported:------ -   Extending 'ToolPurposeFlagBitsEXT':------     -   'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>--- is supported:------ -   Extending 'ToolPurposeFlagBitsEXT':------     -   'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>--- is supported:------ -   Extending 'ToolPurposeFlagBitsEXT':------     -   'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'------     -   'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'------ == Examples------ __Printing Tool Information__------ > uint32_t num_tools;--- > VkPhysicalDeviceToolPropertiesEXT *pToolProperties;--- > vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &num_tools, NULL);--- >--- > pToolProperties = (VkPhysicalDeviceToolPropertiesEXT*)malloc(sizeof(VkPhysicalDeviceToolPropertiesEXT) * num_tools);--- >--- > vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &num_tools, pToolProperties);--- >--- > for (int i = 0; i < num_tools; ++i) {--- >     printf("%s:\n", pToolProperties[i].name);--- >     printf("Version:\n");--- >     printf("%s:\n", pToolProperties[i].version);--- >     printf("Description:\n");--- >     printf("\t%s\n", pToolProperties[i].description);--- >     printf("Purposes:\n");--- >     printf("\t%s\n", VkToolPurposeFlagBitsEXT_to_string(pToolProperties[i].purposes));--- >     if (strnlen_s(pToolProperties[i].layer,VK_MAX_EXTENSION_NAME_SIZE) > 0) {--- >         printf("Corresponding Layer:\n");--- >         printf("\t%s\n", pToolProperties[i].layer);--- >     }--- > }------ == Issues------ 1) Why is this information separate from the layer mechanism?------ Some tooling may be built into a driver, or be part of the Vulkan loader--- etc. Tying this information directly to layers would have been awkward--- at best.------ == Version History------ -   Revision 1, 2018-11-05 (Tobias Hector)------     -   Initial draft------ == See Also------ 'PhysicalDeviceToolPropertiesEXT', 'ToolPurposeFlagBitsEXT',--- 'ToolPurposeFlagsEXT', 'getPhysicalDeviceToolPropertiesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info 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_tooling_info  (PhysicalDeviceToolPropertiesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceToolPropertiesEXT--instance ToCStruct PhysicalDeviceToolPropertiesEXT-instance Show PhysicalDeviceToolPropertiesEXT--instance FromCStruct PhysicalDeviceToolPropertiesEXT-
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -206,7 +206,7 @@ -- A query pool created with this type will capture 2 integers - -- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex -- stream output from the last--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- The vertex stream output queried is zero by default, but can be -- specified with the new 'cmdBeginQueryIndexedEXT' and -- 'cmdEndQueryIndexedEXT' commands.@@ -230,7 +230,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -552,7 +552,7 @@ --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- -- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> --     of the bound graphics pipeline /must/ have been declared with the --     @Xfb@ execution mode --@@ -898,7 +898,7 @@ -- -- -   #VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753# If the @queryPool@ --     was created with the same @queryType@ as that of another---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active> --     query within @commandBuffer@, then @index@ /must/ not match the --     index used for the active query --@@ -1076,7 +1076,7 @@ -- -- -   #VUID-vkCmdEndQueryIndexedEXT-None-02342# All queries used by the --     command /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active> -- -- -   #VUID-vkCmdEndQueryIndexedEXT-query-02343# @query@ /must/ be less --     than the number of queries in @queryPool@@@ -1225,7 +1225,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1281,7 +1281,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -1289,7 +1289,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02697# For each set /n/ --     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'@@ -1492,50 +1492,50 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419# If the --     bound graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1543,11 +1543,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1555,11 +1555,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1567,11 +1567,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1579,11 +1579,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1591,11 +1591,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1603,21 +1603,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04876# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04877# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -1635,14 +1635,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727# If@@ -1666,7 +1666,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1675,7 +1675,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1684,7 +1684,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1693,7 +1693,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1702,7 +1702,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1711,7 +1711,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1720,61 +1720,61 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1783,7 +1783,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1796,11 +1796,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -1812,13 +1812,13 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1826,17 +1826,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1844,7 +1844,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188# If --     the currently bound pipeline was created without a@@ -1852,11 +1852,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -1865,37 +1865,37 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -1919,7 +1919,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this@@ -1935,7 +1935,7 @@ --     graphics pipeline was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic states enabled, then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this@@ -1943,7 +1943,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913# If the bound --     graphics pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     dynamic state enabled, then@@ -1971,7 +1971,7 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04879# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT' --     /must/ have been called in the current command buffer prior to this@@ -2205,7 +2205,7 @@   , -- | #limits-maxTransformFeedbackBuffers# @maxTransformFeedbackBuffers@ is     -- the maximum number of transform feedback buffers that can be bound for     -- capturing shader outputs from the last-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.     maxTransformFeedbackBuffers :: Word32   , -- | #limits-maxTransformFeedbackBufferSize# @maxTransformFeedbackBufferSize@     -- is the maximum size that can be specified when binding a buffer for
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot view
@@ -206,7 +206,7 @@ -- A query pool created with this type will capture 2 integers - -- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex -- stream output from the last--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- The vertex stream output queried is zero by default, but can be -- specified with the new 'cmdBeginQueryIndexedEXT' and -- 'cmdEndQueryIndexedEXT' commands.@@ -230,7 +230,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -300,7 +300,7 @@                             -- containing the initial parameters for the validation cache object.                             ValidationCacheCreateInfoEXT                          -> -- | @pAllocator@ controls host memory allocation as described in the-                            -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                            -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                             -- chapter.                             ("allocator" ::: Maybe AllocationCallbacks)                          -> io (ValidationCacheEXT)@@ -391,7 +391,7 @@                           -> -- | @validationCache@ is the handle of the validation cache to destroy.                              ValidationCacheEXT                           -> -- | @pAllocator@ controls host memory allocation as described in the-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                              -- chapter.                              ("allocator" ::: Maybe AllocationCallbacks)                           -> io ()
src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot view
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_features.hs view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_flags.hs view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -255,7 +255,7 @@     -- queried using     -- 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@.     -- A value of @0@ /can/ be used for the divisor if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>     -- feature is enabled. In this case, the same vertex attribute will be     -- applied to all instances.     divisor :: Word32
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot view
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs view
@@ -112,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -196,7 +196,7 @@ -- values used to create the currently active pipeline. -- -- If the bound pipeline state object was also created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- can be used instead of 'cmdSetVertexInputEXT' to dynamically set the@@ -205,7 +205,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdSetVertexInputEXT-None-04790# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState> --     feature /must/ be enabled -- -- -   #VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791#@@ -388,11 +388,11 @@ --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@ -- -- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-04798# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor> --     feature is not enabled, @divisor@ /must/ not be @0@ -- -- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-04799# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor> --     feature is not enabled, @divisor@ /must/ be @1@ -- -- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-06226# @divisor@@@ -433,14 +433,14 @@   , -- | @divisor@ is the number of successive instances that will use the same     -- value of the vertex attribute when instanced rendering is enabled. This     -- member /can/ be set to a value other than @1@ if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>     -- feature is enabled. For example, if the divisor is N, the same vertex     -- attribute will be applied to N successive instances before moving on to     -- the next vertex attribute. The maximum value of @divisor@ is     -- implementation-dependent and can be queried using     -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@.     -- A value of @0@ /can/ be used for the divisor if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>     -- feature is enabled. In this case, the same vertex attribute will be     -- applied to all instances.     divisor :: Word32
src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot view
@@ -112,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_sampler_ycbcr_conversion@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Tony Zlatinski@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2020-07-28 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -64,18 +73,28 @@ -- -- -   Extending 'Vulkan.Core10.Enums.Format.Format': -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+--     -   'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+--     -   'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+--     -   'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+--     -   'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- -   Revision 1, 2020-03-08 (Piers Daniell)@@ -89,11 +108,15 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats 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_ycbcr_2plane_444_formats  ( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats  ( pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT+                                                          , pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT+                                                          , pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT+                                                          , pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT+                                                          , PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(..)                                                           , EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION                                                           , pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION                                                           , EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME@@ -121,7 +144,27 @@ import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.Format (Format(FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16))+import Vulkan.Core10.Enums.Format (Format(FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16))+import Vulkan.Core10.Enums.Format (Format(FORMAT_G16_B16R16_2PLANE_444_UNORM))+import Vulkan.Core10.Enums.Format (Format(FORMAT_G8_B8R8_2PLANE_444_UNORM)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT))+-- No documentation found for TopLevel "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT"+pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = FORMAT_G8_B8R8_2PLANE_444_UNORM+++-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT"+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16+++-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT"+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16+++-- No documentation found for TopLevel "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT"+pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = FORMAT_G16_B16R16_2PLANE_444_UNORM++ -- | VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - Structure describing -- whether the implementation supports additional 2-plane 444 Y′CBCR -- formats@@ -144,6 +187,13 @@ -- -- == Valid Usage (Implicit) --+-- Note+--+-- Although the formats defined by the @VK_EXT_ycbcr_2plane_444_formats@+-- were promoted to Vulkan 1.3 as optional formats, the+-- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT' structure was not+-- promoted to Vulkan 1.3.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats VK_EXT_ycbcr_2plane_444_formats>,@@ -153,13 +203,13 @@   { -- | #features-ycbcr2plane444Formats# @ycbcr2plane444Formats@ indicates that     -- the implementation supports the following 2-plane 444 Y′CBCR formats:     ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM'     ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16'     ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16'     ---    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM'     ycbcr2plane444Formats :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_sampler_ycbcr_conversion@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Tony Zlatinski@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2020-07-28 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -64,18 +73,28 @@ -- -- -   Extending 'Vulkan.Core10.Enums.Format.Format': -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+--     -   'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+--     -   'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+--     -   'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' -----     -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+--     -   'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- -   Revision 1, 2020-03-08 (Piers Daniell)@@ -89,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs view
@@ -40,7 +40,7 @@ -- == Description -- -- This extension allows images of a format that requires--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- to be created with multiple array layers, which is otherwise restricted. -- -- == New Structures@@ -74,7 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -137,7 +137,7 @@ data PhysicalDeviceYcbcrImageArraysFeaturesEXT = PhysicalDeviceYcbcrImageArraysFeaturesEXT   { -- | #features-ycbcrImageArrays# @ycbcrImageArrays@ indicates that the     -- implementation supports creating images with a format that requires-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>     -- and has multiple array layers.     ycbcrImageArrays :: Bool }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot view
@@ -40,7 +40,7 @@ -- == Description -- -- This extension allows images of a format that requires--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- to be created with multiple array layers, which is otherwise restricted. -- -- == New Structures@@ -74,7 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs view
@@ -204,7 +204,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -402,7 +402,7 @@                               -> -- | @pAllocator@ is a pointer to a                                  -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure                                  -- controlling host memory allocation as described in the-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                  -- chapter                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io (BufferCollectionFUCHSIA)@@ -642,7 +642,7 @@                                -> -- | @pAllocator@ is a pointer to a                                   -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure                                   -- controlling host memory allocation as described in the-                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                   -- chapter                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io ()@@ -1051,7 +1051,7 @@   , -- | @bufferCount@ is the number of buffers in the collection     bufferCount :: Word32   , -- | @createInfoIndex@ as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen create infos>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen create infos>     createInfoIndex :: Word32   , -- | @sysmemPixelFormat@ is the Sysmem @PixelFormatType@ as defined in     -- @fuchsia.sysmem\/image_formats.fidl@@@ -1204,7 +1204,7 @@ --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' --     /must/ be chosen from among the buffer compatible format features --     listed in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#buffer-compatible-format-features buffer compatible format features>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-compatible-format-features buffer compatible format features> -- -- == Valid Usage (Implicit) --@@ -1487,7 +1487,7 @@ -- -- -   #VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is enabled, and @pFormatConstraints@::@imageCreateInfo@::@usage@ --     contains --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',
src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot view
@@ -204,7 +204,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -111,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot view
@@ -111,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,7 +203,7 @@ -- Exporting a Zircon event handle from a semaphore /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>. -- -- == Return Codes --@@ -334,13 +334,13 @@ -- -- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765# --     @handleType@ /must/ be a value included in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fuchsia Handle Types Supported by >+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fuchsia Handle Types Supported by > --     table -- -- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766# --     @zirconHandle@ /must/ obey any requirements listed for @handleType@ --     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- -   #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767# --     @zirconHandle@ /must/ have @ZX_RIGHTS_BASIC@ and @ZX_RIGHTS_SIGNAL@@@ -472,7 +472,7 @@ -- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759# --     @semaphore@ /must/ not currently have its payload replaced by an --     imported payload as described below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads> --     unless that imported payload’s handle type was included in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@ --     for @handleType@@@ -480,13 +480,13 @@ -- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760# If --     @handleType@ refers to a handle type with copy payload transference --     semantics, as defined below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, --     there /must/ be no queue waiting on @semaphore@ -- -- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761# If --     @handleType@ refers to a handle type with copy payload transference --     semantics, @semaphore@ /must/ be signaled, or have an associated---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> --     pending execution -- -- -   #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762#
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot view
@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -218,7 +218,7 @@                                  ImagePipeSurfaceCreateInfoFUCHSIA                               -> -- | @pAllocator@ is the allocator used for host memory allocated for the                                  -- surface object when there is no more specific allocator available (see-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io (SurfaceKHR) createImagePipeSurfaceFUCHSIA instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GGP_frame_token.hs view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs view
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -248,7 +248,7 @@                                     StreamDescriptorSurfaceCreateInfoGGP                                  -> -- | @pAllocator@ is the allocator used for host memory allocated for the                                     -- surface object when there is no more specific allocator available (see-                                    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                                    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                                     ("allocator" ::: Maybe AllocationCallbacks)                                  -> io (SurfaceKHR) createStreamDescriptorSurfaceGGP instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot view
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs view
@@ -69,7 +69,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_decorate_string Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_decorate_string Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot view
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs view
@@ -73,7 +73,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_hlsl_functionality1 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_hlsl_functionality1 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs view
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_surfaceless_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_surfaceless_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_user_type.hs view
@@ -69,7 +69,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_user_type Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_user_type Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs view
@@ -77,10 +77,9 @@ -- -- -   'HUAWEI_INVOCATION_MASK_SPEC_VERSION' ----- -   Extending---     'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' -- -- -   Extending --     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':@@ -88,9 +87,9 @@ --     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI' -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -141,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -151,11 +150,6 @@                                                     , pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION                                                     , HUAWEI_INVOCATION_MASK_EXTENSION_NAME                                                     , pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME-                                                    , AccessFlagBits2KHR(..)-                                                    , AccessFlags2KHR-                                                    , PipelineStageFlagBits2KHR(..)-                                                    , PipelineStageFlags2KHR-                                                    , Flags64                                                     ) where  import Vulkan.Internal.Utils (traceAroundEvent)@@ -198,11 +192,6 @@ import Vulkan.Core10.Handles (ImageView(..)) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI))-import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlags2KHR)-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -216,7 +205,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdBindInvocationMaskHUAWEI-None-04976# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask invocation mask image> --     feature /must/ be enabled -- -- -   #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977# If @imageView@
src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot view
@@ -77,10 +77,9 @@ -- -- -   'HUAWEI_INVOCATION_MASK_SPEC_VERSION' ----- -   Extending---     'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' -- -- -   Extending --     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':@@ -88,9 +87,9 @@ --     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI' -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -141,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs view
@@ -108,9 +108,9 @@ --     -   'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI' -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- -   Extending --     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':@@ -335,7 +335,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -348,9 +348,6 @@                                                     , pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION                                                     , HUAWEI_SUBPASS_SHADING_EXTENSION_NAME                                                     , pattern HUAWEI_SUBPASS_SHADING_EXTENSION_NAME-                                                    , PipelineStageFlagBits2KHR(..)-                                                    , PipelineStageFlags2KHR-                                                    , Flags64                                                     ) where  import Vulkan.Internal.Utils (traceAroundEvent)@@ -409,9 +406,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -515,7 +509,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -571,7 +565,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -579,7 +573,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -813,7 +807,7 @@     -- environment in which the pipeline will be used. The pipeline /must/ only     -- be used with a render pass instance compatible with the one provided.     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>     -- for more information.     renderPass :: RenderPass   , -- | @subpass@ is the index of the subpass in the render pass where this
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot view
@@ -108,9 +108,9 @@ --     -   'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI' -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- -   Extending --     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':@@ -335,7 +335,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_IMG_filter_cubic.hs view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_IMG_filter_cubic Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_IMG_filter_cubic Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_IMG_format_pvrtc Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_IMG_format_pvrtc Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_INTEL_performance_query.hs view
@@ -313,7 +313,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -867,7 +867,7 @@ -- -   #VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737# --     @configuration@ /must/ not be released before all command buffers --     submitted while the configuration was set are in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot view
@@ -313,7 +313,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs view
@@ -81,7 +81,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot view
@@ -81,7 +81,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_16bit_storage.hs view
@@ -111,13 +111,13 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer16BitAccess StorageBuffer16BitAccess>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer16BitAccess StorageBuffer16BitAccess> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess UniformAndStorageBuffer16BitAccess>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess UniformAndStorageBuffer16BitAccess> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant16 StoragePushConstant16>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant16 StoragePushConstant16> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16> -- -- == Version History --@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_16bit_storage Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_16bit_storage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_8bit_storage.hs view
@@ -97,11 +97,11 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer8BitAccess StorageBuffer8BitAccess>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer8BitAccess StorageBuffer8BitAccess> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer8BitAccess UniformAndStorageBuffer8BitAccess>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer8BitAccess UniformAndStorageBuffer8BitAccess> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8> -- -- == Version History --@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_8bit_storage Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_8bit_storage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -355,9 +355,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2> -- is supported: ----- -   Extending 'FormatFeatureFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- -- == Issues --@@ -375,7 +376,7 @@ --     'cmdCopyMemoryToAccelerationStructureKHR') -- -- -   document---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances> -- -- -   added 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure --@@ -383,7 +384,7 @@ --     ('cmdBuildAccelerationStructuresIndirectKHR') -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> --     commands -- -- -   reworked geometry structures so they could be better shared between@@ -654,7 +655,7 @@ --         structure and require one of them be @NULL@ -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     support for acceleration structures -- -- -   changed the @update@ member of@@ -1146,7 +1147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1245,40 +1246,6 @@                                                                                                , ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR                                                                                                , ..                                                                                                )-                                                        , FormatFeatureFlags2KHR-                                                        , FormatFeatureFlagBits2KHR( FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_BLIT_DST_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT-                                                                                   , FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_DISJOINT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV-                                                                                   , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR-                                                                                   , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT-                                                                                   , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR-                                                                                   , ..-                                                                                   )                                                         , KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                                                         , pattern KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                                                         , KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME@@ -1286,7 +1253,6 @@                                                         , AccelerationStructureKHR(..)                                                         , DeferredOperationKHR(..)                                                         , DebugReportObjectTypeEXT(..)-                                                        , Flags64                                                         ) where  import Vulkan.CStruct.Utils (FixedArray)@@ -1409,7 +1375,6 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.FundamentalTypes (Flags64) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.IndexType (IndexType) import Vulkan.CStruct.Extends (PeekChain)@@ -1446,7 +1411,6 @@ import Vulkan.Extensions.Handles (AccelerationStructureKHR(..)) import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(..)) import Vulkan.Extensions.Handles (DeferredOperationKHR(..))-import Vulkan.Core10.FundamentalTypes (Flags64) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -1511,7 +1475,7 @@                                 -> -- | @accelerationStructure@ is the acceleration structure to destroy.                                    AccelerationStructureKHR                                 -> -- | @pAllocator@ controls host memory allocation as described in the-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                    -- chapter.                                    ("allocator" ::: Maybe AllocationCallbacks)                                 -> io ()@@ -1543,12 +1507,12 @@ -- @pInfo->mode@. -- -- Accesses to @pInfo->src@ and @pInfo->dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -1660,7 +1624,7 @@ -- -- -   #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> --     feature /must/ be enabled -- -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used@@ -1717,7 +1681,7 @@                                 Device                              -> -- | @deferredOperation@ is an optional                                 -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>                                 -- for this command.                                 DeferredOperationKHR                              -> -- | @pInfo@ is a pointer to a 'CopyAccelerationStructureInfoKHR' structure@@ -1748,12 +1712,12 @@ -- = Description -- -- Accesses to @pInfo->src@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. -- Accesses to the buffer indicated by @pInfo->dst.deviceAddress@ /must/ be@@ -1927,7 +1891,7 @@ -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> --     feature /must/ be enabled -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783# The@@ -1980,7 +1944,7 @@                                         Device                                      -> -- | @deferredOperation@ is an optional                                         -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to-                                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>                                         -- for this command.                                         DeferredOperationKHR                                      -> -- | @pInfo@ is a pointer to a 'CopyAccelerationStructureToMemoryInfoKHR'@@ -2011,12 +1975,12 @@ -- = Description -- -- Accesses to @pInfo->dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'. -- Accesses to the buffer indicated by @pInfo->src.deviceAddress@ /must/ be@@ -2158,7 +2122,7 @@ -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> --     feature /must/ be enabled -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782# The@@ -2211,7 +2175,7 @@                                         Device                                      -> -- | @deferredOperation@ is an optional                                         -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to-                                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>                                         -- for this command.                                         DeferredOperationKHR                                      -> -- | @pInfo@ is a pointer to a 'CopyMemoryToAccelerationStructureInfoKHR'@@ -2243,12 +2207,12 @@ -- -- Accesses to any of the acceleration structures listed in -- @pAccelerationStructures@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. --@@ -2458,7 +2422,7 @@ -- -- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> --     feature /must/ be enabled -- -- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784# The@@ -2556,9 +2520,9 @@ -- -- -   #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2634,18 +2598,18 @@ -- -- -   #VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructure accelerationStructure>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure accelerationStructure> --     feature /must/ be enabled -- -- -   #VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488# If --     'AccelerationStructureCreateInfoKHR'::@deviceAddress@ is not zero, --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay> --     feature /must/ be enabled -- -- -   #VUID-vkCreateAccelerationStructureKHR-device-03489# If @device@ was --     created with multiple physical devices, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2695,7 +2659,7 @@                                   -- structure.                                   (AccelerationStructureCreateInfoKHR a)                                -> -- | @pAllocator@ controls host memory allocation as described in the-                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io (AccelerationStructureKHR)@@ -2756,12 +2720,12 @@ -- Accesses to the acceleration structure scratch buffers as identified by -- the 'AccelerationStructureBuildGeometryInfoKHR'::@scratchData@ buffer -- device addresses /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -2778,12 +2742,12 @@ -- 'AccelerationStructureGeometryTrianglesDataKHR'::@transformData@, -- 'AccelerationStructureGeometryAabbsDataKHR'::@data@, and -- 'AccelerationStructureGeometryInstancesDataKHR'::@data@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADER_READ_BIT'. -- -- == Valid Usage@@ -3344,12 +3308,12 @@ -- 'cmdBuildAccelerationStructuresKHR'. -- -- Accesses to any element of @pIndirectDeviceAddresses@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'. --@@ -3838,7 +3802,7 @@ -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild> --     feature /must/ be enabled -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651#@@ -4281,7 +4245,7 @@ -- -- -   #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> --     feature /must/ be enabled -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03725# If@@ -4424,7 +4388,7 @@                                   Device                                -> -- | @deferredOperation@ is an optional                                   -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to-                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>                                   -- for this command.                                   DeferredOperationKHR                                -> -- | @pInfos@ is a pointer to an array of @infoCount@@@ -4499,7 +4463,7 @@ -- -- -   #VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504# If --     @device@ was created with multiple physical devices, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -4617,14 +4581,14 @@ -- -- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery> --     feature /must/ be enabled -- -- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618# If --     @device@ was created with multiple physical devices, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> --     feature /must/ be enabled -- -- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619# If@@ -4722,7 +4686,7 @@ -- -- -   #VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     feature is not enabled, each element of @pAccelerationStructures@ --     /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -4818,7 +4782,7 @@   { -- | #features-accelerationStructure# @accelerationStructure@ indicates     -- whether the implementation supports the acceleration structure     -- functionality. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure Acceleration Structures>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure Acceleration Structures>.     accelerationStructure :: Bool   , -- | #features-accelerationStructureCaptureReplay#     -- @accelerationStructureCaptureReplay@ indicates whether the@@ -4908,10 +4872,10 @@ -- -- Due to the fact that the geometry, instance, and primitive counts are -- specified at acceleration structure creation as 32-bit values,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxGeometryCount maxGeometryCount>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxInstanceCount maxInstanceCount>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxGeometryCount maxGeometryCount>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInstanceCount maxInstanceCount>, -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxPrimitiveCount maxPrimitiveCount>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxPrimitiveCount maxPrimitiveCount> -- /must/ not exceed 232-1. -- -- If the 'PhysicalDeviceAccelerationStructurePropertiesKHR' structure is@@ -5274,7 +5238,7 @@   , -- | @data@ is either the address of an array of device or host addresses     -- referencing individual 'AccelerationStructureInstanceKHR' structures or     -- packed motion instance information as described in-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-motion-instances motion instances>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-motion-instances motion instances>     -- if @arrayOfPointers@ is 'Vulkan.Core10.FundamentalTypes.TRUE', or the     -- address of an array of 'AccelerationStructureInstanceKHR' or     -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInstanceNV'@@ -5407,9 +5371,9 @@ -- of 'AccelerationStructureBuildGeometryInfoKHR' is used as the /geometry -- index/ during ray traversal. The geometry index is available in ray -- shaders via the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR built-in>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR built-in>, -- and is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table-hit-shader-indexing used to determine hit and intersection shaders executed during traversal>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table-hit-shader-indexing used to determine hit and intersection shaders executed during traversal>. -- The geometry index is available to ray queries via the -- @OpRayQueryGetIntersectionGeometryIndexKHR@ instruction. --@@ -5928,7 +5892,7 @@     type' :: AccelerationStructureTypeKHR   , -- | @deviceAddress@ is the device address requested for the acceleration     -- structure if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>     -- feature is being used.     deviceAddress :: DeviceAddress   }@@ -6169,6 +6133,7 @@   peek = peekCStruct   poke ptr poked = pokeCStruct ptr poked (pure ()) +-- | The Identity Matrix instance Zero TransformMatrixKHR where  zero = TransformMatrixKHR           (1,0,0,0)@@ -6857,7 +6822,7 @@ -- culling for this instance. pattern GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = GeometryInstanceFlagBitsKHR 0x00000001 -- | 'GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR' indicates that the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-culling-face facing determination>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-face facing determination> -- for geometry in this instance is inverted. Because the facing is -- determined in object space, an instance transform does not change the -- winding, but a geometry transform does.@@ -7390,517 +7355,6 @@                           showTableAccelerationStructureCompatibilityKHR                           conNameAccelerationStructureCompatibilityKHR                           AccelerationStructureCompatibilityKHR---type FormatFeatureFlags2KHR = FormatFeatureFlagBits2KHR---- | VkFormatFeatureFlagBits2KHR - Bitmask specifying features supported by a--- buffer------ = Description------ The following bits /may/ be set in @linearTilingFeatures@ and--- @optimalTilingFeatures@, specifying that the features are supported by--- <VkImage.html images> or <VkImageView.html image views> or--- <VkSamplerYcbcrConversion.html sampler Y′CBCR conversion objects>--- created with the queried--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' specifies that an image---     view /can/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.------ -   'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR' specifies that an image---     view /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.------ -   'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR' specifies that an---     image view /can/ be used as storage image that supports atomic---     operations.------ -   'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR' specifies that an image---     view /can/ be used as a framebuffer color attachment and as an input---     attachment.------ -   'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR' specifies that an---     image view /can/ be used as a framebuffer color attachment that---     supports blending and as an input attachment.------ -   'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR' specifies that---     an image view /can/ be used as a framebuffer depth\/stencil---     attachment and as an input attachment.------ -   'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' specifies that an image /can/ be---     used as @srcImage@ for the---     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.------ -   'FORMAT_FEATURE_2_BLIT_DST_BIT_KHR' specifies that an image /can/ be---     used as @dstImage@ for the---     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR' specifies---     that if 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' is also set, an---     image view /can/ be used with a sampler that has either of---     @magFilter@ or @minFilter@ set to---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'.---     If 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' is also set, an image can be---     used as the @srcImage@ to---     'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and---     'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@---     of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only---     be exposed for formats that also support the---     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' or---     'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR'.------     If the format being queried is a depth\/stencil format, this bit---     only specifies that the depth aspect (not the stencil aspect) of an---     image of this format supports linear filtering. Where depth---     comparison is supported it /may/ be linear filtered whether this bit---     is present or not, but where this bit is not present the filtered---     value /may/ be computed in an implementation-dependent manner which---     differs from the normal rules of linear filtering. The resulting---     value /must/ be in the range [0,1] and /should/ be proportional to,---     or a weighted average of, the number of comparison passes or---     failures.------ -   'FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR' specifies that an image---     /can/ be used as a source image for---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>.------ -   'FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR' specifies that an image---     /can/ be used as a destination image for---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR' specifies---     'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with---     a min or max---     'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'.---     This bit /must/ only be exposed for formats that also support the---     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR'.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' specifies that---     'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has---     either of @magFilter@ or @minFilter@ set to---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the---     source image for a blit with @filter@ set to---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit---     /must/ only be exposed for formats that also support the---     'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR'. If the format being---     queried is a depth\/stencil format, this only specifies that the---     depth aspect is cubic filterable.------ -   'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' specifies that an---     application /can/ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>---     using this format as a source, and that an image of this format---     /can/ be used with a---     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'---     @xChromaOffset@ and\/or @yChromaOffset@ of---     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'.---     Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be---     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.---     If a format does not incorporate chroma downsampling (it is not a---     “422” or “420” format) but the implementation supports sampler---     Y′CBCR conversion for this format, the implementation /must/ set---     'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR'.------ -   'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' specifies that an---     application /can/ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>---     using this format as a source, and that an image of this format---     /can/ be used with a---     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'---     @xChromaOffset@ and\/or @yChromaOffset@ of---     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.---     Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be---     'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If---     neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' nor---     'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' is set, the---     application /must/ not define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>---     using this format as a source.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR'---     specifies that an application /can/ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>---     using this format as a source with @chromaFilter@ set to---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR'---     specifies that the format can have different chroma, min, and mag---     filters.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'---     specifies that reconstruction is explicit, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction>.---     If this bit is not present, reconstruction is implicit by default.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'---     specifies that reconstruction /can/ be forcibly made explicit by---     setting---     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@---     to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being---     queried supports---     'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'---     it /must/ also support---     'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'.------ -   'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' specifies that a multi-planar---     image /can/ have the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'---     set during image creation. An implementation /must/ not set---     'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' for /single-plane formats/.------ -   'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an---     image view /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.------ -   'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'---     specifies that an image view /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.---     An implementation /must/ not set this feature for formats with---     numeric type other than @*UINT@, or set it as a buffer feature.------ -   'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' specifies---     that image views created with this format /can/ be used as---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>---     for read operations without specifying a format.------ -   'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR' specifies---     that image views created with this format /can/ be used as---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>---     for write operations without specifying a format.------ -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR' specifies---     that image views created with this format /can/ be used for depth---     comparison performed by @OpImage*Dref@ instructions.------ -   'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the---     format is supported as a renderable---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>.---     This bit will be set for renderable color formats in the---     @linearTilingFeatures@. This /must/ not be set in the---     @optimalTilingFeatures@ or @bufferFeatures@ members.------ The following bits /may/ be set in @bufferFeatures@, specifying that the--- features are supported by <VkBuffer.html buffers> or--- <VkBufferView.html buffer views> created with the queried--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:------ -   'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' specifies that the---     format /can/ be used to create a buffer view that /can/ be bound to---     a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'---     descriptor.------ -   'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' specifies that the---     format /can/ be used to create a buffer view that /can/ be bound to---     a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     descriptor.------ -   'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR' specifies---     that atomic operations are supported on---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     with this format.------ -   'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR' specifies that the format---     /can/ be used as a vertex attribute format---     ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).------ -   'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'---     specifies that the format /can/ be used as the vertex format when---     creating an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure>---     ('AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@).---     This format /can/ also be used as the vertex format in host memory---     when doing---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>---     builds.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>-newtype FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2KHR Flags64-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' specifies that an image view--- /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR               = FormatFeatureFlagBits2KHR 0x0000000000000001--- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR' specifies that an image view--- /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.-pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR               = FormatFeatureFlagBits2KHR 0x0000000000000002--- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR' specifies that an image--- view /can/ be used as storage image that supports atomic operations.-pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR        = FormatFeatureFlagBits2KHR 0x0000000000000004--- | 'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' specifies that the--- format /can/ be used to create a buffer view that /can/ be bound to a--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'--- descriptor.-pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR        = FormatFeatureFlagBits2KHR 0x0000000000000008--- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' specifies that the--- format /can/ be used to create a buffer view that /can/ be bound to a--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'--- descriptor.-pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR        = FormatFeatureFlagBits2KHR 0x0000000000000010--- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR' specifies that--- atomic operations are supported on--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'--- with this format.-pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000020--- | 'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR' specifies that the format /can/--- be used as a vertex attribute format--- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).-pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR               = FormatFeatureFlagBits2KHR 0x0000000000000040--- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR' specifies that an image view--- /can/ be used as a framebuffer color attachment and as an input--- attachment.-pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR            = FormatFeatureFlagBits2KHR 0x0000000000000080--- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR' specifies that an--- image view /can/ be used as a framebuffer color attachment that supports--- blending and as an input attachment.-pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR      = FormatFeatureFlagBits2KHR 0x0000000000000100--- | 'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR' specifies that an--- image view /can/ be used as a framebuffer depth\/stencil attachment and--- as an input attachment.-pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR    = FormatFeatureFlagBits2KHR 0x0000000000000200--- | 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' specifies that an image /can/ be--- used as @srcImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.-pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR                    = FormatFeatureFlagBits2KHR 0x0000000000000400--- | 'FORMAT_FEATURE_2_BLIT_DST_BIT_KHR' specifies that an image /can/ be--- used as @dstImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.-pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR                    = FormatFeatureFlagBits2KHR 0x0000000000000800--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR' specifies that if--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' is also set, an image view--- /can/ be used with a sampler that has either of @magFilter@ or--- @minFilter@ set to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or--- @mipmapMode@ set to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If--- 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' is also set, an image can be used as--- the @srcImage@ to--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@ of--- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be--- exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' or--- 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR'.------ If the format being queried is a depth\/stencil format, this bit only--- specifies that the depth aspect (not the stencil aspect) of an image of--- this format supports linear filtering. Where depth comparison is--- supported it /may/ be linear filtered whether this bit is present or--- not, but where this bit is not present the filtered value /may/ be--- computed in an implementation-dependent manner which differs from the--- normal rules of linear filtering. The resulting value /must/ be in the--- range [0,1] and /should/ be proportional to, or a weighted average of,--- the number of comparison passes or failures.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000001000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' specifies that--- 'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has--- either of @magFilter@ or @minFilter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the--- source image for a blit with @filter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit--- /must/ only be exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR'. If the format being queried is--- a depth\/stencil format, this only specifies that the depth aspect is--- cubic filterable.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT  = FormatFeatureFlagBits2KHR 0x0000000000002000--- | 'FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR' specifies that an image /can/ be--- used as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>.-pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR                = FormatFeatureFlagBits2KHR 0x0000000000004000--- | 'FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR' specifies that an image /can/ be--- used as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.-pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR                = FormatFeatureFlagBits2KHR 0x0000000000008000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR' specifies--- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with a--- min or max--- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'. This--- bit /must/ only be exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR'.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000010000--- | 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' specifies that an--- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>--- using this format as a source, and that an image of this format /can/ be--- used with a--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'--- @xChromaOffset@ and\/or @yChromaOffset@ of--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. Otherwise--- both @xChromaOffset@ and @yChromaOffset@ /must/ be--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'. If a--- format does not incorporate chroma downsampling (it is not a “422” or--- “420” format) but the implementation supports sampler Y′CBCR conversion--- for this format, the implementation /must/ set--- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR'.-pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR     = FormatFeatureFlagBits2KHR 0x0000000000020000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR'--- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>--- using this format as a source with @chromaFilter@ set to--- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR =-  FormatFeatureFlagBits2KHR 0x0000000000040000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR'--- specifies that the format can have different chroma, min, and mag--- filters.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR =-  FormatFeatureFlagBits2KHR 0x0000000000080000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'--- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction>.--- If this bit is not present, reconstruction is implicit by default.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR =-  FormatFeatureFlagBits2KHR 0x0000000000100000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'--- specifies that reconstruction /can/ be forcibly made explicit by setting--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@--- to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being queried--- supports--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'--- it /must/ also support--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR =-  FormatFeatureFlagBits2KHR 0x0000000000200000--- | 'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' specifies that a multi-planar image--- /can/ have the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' set--- during image creation. An implementation /must/ not set--- 'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' for /single-plane formats/.-pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR                             = FormatFeatureFlagBits2KHR 0x0000000000400000--- | 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' specifies that an--- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>--- using this format as a source, and that an image of this format /can/ be--- used with a--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'--- @xChromaOffset@ and\/or @yChromaOffset@ of--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.--- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If--- neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' nor--- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' is set, the--- application /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>--- using this format as a source.-pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR               = FormatFeatureFlagBits2KHR 0x0000000000800000--- | 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' specifies that--- image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for read operations without specifying a format.-pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR          = FormatFeatureFlagBits2KHR 0x0000000080000000--- | 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR' specifies that--- image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for write operations without specifying a format.-pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR         = FormatFeatureFlagBits2KHR 0x0000000100000000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR' specifies that--- image views created with this format /can/ be used for depth comparison--- performed by @OpImage*Dref@ instructions.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR       = FormatFeatureFlagBits2KHR 0x0000000200000000--- | 'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the--- format is supported as a renderable--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>.--- This bit will be set for renderable color formats in the--- @linearTilingFeatures@. This /must/ not be set in the--- @optimalTilingFeatures@ or @bufferFeatures@ members.-pattern FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV               = FormatFeatureFlagBits2KHR 0x0000004000000000--- | 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies--- that an image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.--- An implementation /must/ not set this feature for formats with numeric--- type other than @*UINT@, or set it as a buffer feature.-pattern FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR     = FormatFeatureFlagBits2KHR 0x0000000040000000--- | 'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image--- view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.-pattern FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT                 = FormatFeatureFlagBits2KHR 0x0000000001000000--- | 'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'--- specifies that the format /can/ be used as the vertex format when--- creating an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure>--- ('AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). This--- format /can/ also be used as the vertex format in host memory when doing--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>--- builds.-pattern FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000020000000--conNameFormatFeatureFlagBits2KHR :: String-conNameFormatFeatureFlagBits2KHR = "FormatFeatureFlagBits2KHR"--enumPrefixFormatFeatureFlagBits2KHR :: String-enumPrefixFormatFeatureFlagBits2KHR = "FORMAT_FEATURE_2_"--showTableFormatFeatureFlagBits2KHR :: [(FormatFeatureFlagBits2KHR, String)]-showTableFormatFeatureFlagBits2KHR =-  [ (FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR              , "SAMPLED_IMAGE_BIT_KHR")-  , (FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR              , "STORAGE_IMAGE_BIT_KHR")-  , (FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR       , "STORAGE_IMAGE_ATOMIC_BIT_KHR")-  , (FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR       , "UNIFORM_TEXEL_BUFFER_BIT_KHR")-  , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR       , "STORAGE_TEXEL_BUFFER_BIT_KHR")-  , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR, "STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR")-  , (FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR              , "VERTEX_BUFFER_BIT_KHR")-  , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR           , "COLOR_ATTACHMENT_BIT_KHR")-  , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR     , "COLOR_ATTACHMENT_BLEND_BIT_KHR")-  , (FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR   , "DEPTH_STENCIL_ATTACHMENT_BIT_KHR")-  , (FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR                   , "BLIT_SRC_BIT_KHR")-  , (FORMAT_FEATURE_2_BLIT_DST_BIT_KHR                   , "BLIT_DST_BIT_KHR")-  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR, "SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR")-  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT , "SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT")-  , (FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR               , "TRANSFER_SRC_BIT_KHR")-  , (FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR               , "TRANSFER_DST_BIT_KHR")-  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR, "SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR")-  , (FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR    , "MIDPOINT_CHROMA_SAMPLES_BIT_KHR")-  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR-    , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"-    )-  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR-    , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"-    )-  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR-    , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"-    )-  , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR-    , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"-    )-  , (FORMAT_FEATURE_2_DISJOINT_BIT_KHR                            , "DISJOINT_BIT_KHR")-  , (FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR              , "COSITED_CHROMA_SAMPLES_BIT_KHR")-  , (FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR         , "STORAGE_READ_WITHOUT_FORMAT_BIT_KHR")-  , (FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR        , "STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR")-  , (FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR      , "SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR")-  , (FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV              , "LINEAR_COLOR_ATTACHMENT_BIT_NV")-  , (FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR    , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")-  , (FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT                , "FRAGMENT_DENSITY_MAP_BIT_EXT")-  , (FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")-  ]--instance Show FormatFeatureFlagBits2KHR where-  showsPrec = enumShowsPrec enumPrefixFormatFeatureFlagBits2KHR-                            showTableFormatFeatureFlagBits2KHR-                            conNameFormatFeatureFlagBits2KHR-                            (\(FormatFeatureFlagBits2KHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read FormatFeatureFlagBits2KHR where-  readPrec = enumReadPrec enumPrefixFormatFeatureFlagBits2KHR-                          showTableFormatFeatureFlagBits2KHR-                          conNameFormatFeatureFlagBits2KHR-                          FormatFeatureFlagBits2KHR   type KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -355,9 +355,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2> -- is supported: ----- -   Extending 'FormatFeatureFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- -- == Issues --@@ -375,7 +376,7 @@ --     'cmdCopyMemoryToAccelerationStructureKHR') -- -- -   document---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances> -- -- -   added 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure --@@ -383,7 +384,7 @@ --     ('cmdBuildAccelerationStructuresIndirectKHR') -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> --     commands -- -- -   reworked geometry structures so they could be better shared between@@ -654,7 +655,7 @@ --         structure and require one of them be @NULL@ -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     support for acceleration structures -- -- -   changed the @update@ member of@@ -1146,7 +1147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_android_surface.hs view
@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -312,7 +312,7 @@                            AndroidSurfaceCreateInfoKHR                         -> -- | @pAllocator@ is the allocator used for host memory allocated for the                            -- surface object when there is no more specific allocator available (see-                           -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                           -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                            ("allocator" ::: Maybe AllocationCallbacks)                         -> io (SurfaceKHR) createAndroidSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot view
@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_bind_memory2.hs view
@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_bind_memory2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_bind_memory2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs view
@@ -195,7 +195,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses> -- -- == Version History --@@ -215,7 +215,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_buffer_device_address Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -21,3239 +21,324 @@ -- --     -   Requires Vulkan 1.0 ----- [__Contact__]------     -   Jeff Leger---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A<<Here describe the issue or question you have about the VK_KHR_copy_commands2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-07-06------ [__Interactions and External Dependencies__]------     -   None------ [__Contributors__]------     -   Jeff Leger, Qualcomm------     -   Tobias Hector, AMD------     -   Jan-Harald Fredriksen, ARM------     -   Tom Olson, ARM------ == Description------ This extension provides extensible versions of the Vulkan buffer and--- image copy commands. The new commands are functionally identical to the--- core commands, except that their copy parameters are specified using--- extensible structures that can be used to pass extension-specific--- information.------ The following extensible copy commands are introduced with this--- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an--- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.--- Lower level structures describing each region to be copied are also--- extended with @sType@\/@pNext@ members.------ == New Commands------ -   'cmdBlitImage2KHR'------ -   'cmdCopyBuffer2KHR'------ -   'cmdCopyBufferToImage2KHR'------ -   'cmdCopyImage2KHR'------ -   'cmdCopyImageToBuffer2KHR'------ -   'cmdResolveImage2KHR'------ == New Structures------ -   'BlitImageInfo2KHR'------ -   'BufferCopy2KHR'------ -   'BufferImageCopy2KHR'------ -   'CopyBufferInfo2KHR'------ -   'CopyBufferToImageInfo2KHR'------ -   'CopyImageInfo2KHR'------ -   'CopyImageToBufferInfo2KHR'------ -   'ImageBlit2KHR'------ -   'ImageCopy2KHR'------ -   'ImageResolve2KHR'------ -   'ResolveImageInfo2KHR'------ == New Enum Constants------ -   'KHR_COPY_COMMANDS_2_EXTENSION_NAME'------ -   'KHR_COPY_COMMANDS_2_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'------ == Version History------ -   Revision 1, 2020-07-06 (Jeff Leger)------     -   Internal revisions------ == See Also------ 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',--- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',--- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',--- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',--- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_copy_commands2  ( cmdCopyBuffer2KHR-                                                , cmdCopyImage2KHR-                                                , cmdBlitImage2KHR-                                                , cmdCopyBufferToImage2KHR-                                                , cmdCopyImageToBuffer2KHR-                                                , cmdResolveImage2KHR-                                                , BufferCopy2KHR(..)-                                                , ImageCopy2KHR(..)-                                                , ImageBlit2KHR(..)-                                                , BufferImageCopy2KHR(..)-                                                , ImageResolve2KHR(..)-                                                , CopyBufferInfo2KHR(..)-                                                , CopyImageInfo2KHR(..)-                                                , BlitImageInfo2KHR(..)-                                                , CopyBufferToImageInfo2KHR(..)-                                                , CopyImageToBufferInfo2KHR(..)-                                                , ResolveImageInfo2KHR(..)-                                                , KHR_COPY_COMMANDS_2_SPEC_VERSION-                                                , pattern KHR_COPY_COMMANDS_2_SPEC_VERSION-                                                , KHR_COPY_COMMANDS_2_EXTENSION_NAME-                                                , pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME-                                                ) where--import Vulkan.CStruct.Utils (FixedArray)-import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Data.Typeable (eqT)-import Foreign.Marshal.Alloc (allocaBytes)-import GHC.IO (throwIO)-import GHC.Ptr (castPtr)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Data.Vector (generateM)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.String (IsString)-import Data.Type.Equality ((:~:)(Refl))-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.CStruct.Extends (forgetExtensions)-import Vulkan.CStruct.Utils (lowerArrayPtr)-import Vulkan.CStruct.Extends (peekSomeCStruct)-import Vulkan.CStruct.Extends (pokeSomeCStruct)-import Vulkan.Core10.Handles (Buffer)-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 {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM)-import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImage2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2KHR))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.CStruct.Extends (Extends)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.CStruct.Extends (Extensible(..))-import Vulkan.Core10.FundamentalTypes (Extent3D)-import Vulkan.Core10.Enums.Filter (Filter)-import Vulkan.Core10.Handles (Image)-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)-import Vulkan.Core10.FundamentalTypes (Offset3D)-import Vulkan.CStruct.Extends (PeekChain)-import Vulkan.CStruct.Extends (PeekChain(..))-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (PokeChain(..))-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyBuffer2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()---- | vkCmdCopyBuffer2KHR - Copy data between buffer regions------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ -   #VUID-vkCmdCopyBuffer2KHR-commandBuffer-01822# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBuffer2KHR-commandBuffer-01823# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBuffer2KHR-commandBuffer-01824# If @commandBuffer@ is---     a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyBuffer2KHR-pCopyBufferInfo-parameter#---     @pCopyBufferInfo@ /must/ be a valid pointer to a valid---     'CopyBufferInfo2KHR' structure------ -   #VUID-vkCmdCopyBuffer2KHR-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-vkCmdCopyBuffer2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyBuffer2KHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferInfo2KHR'-cmdCopyBuffer2KHR :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @pCopyBufferInfo@ is a pointer to a 'CopyBufferInfo2KHR' structure-                     -- describing the copy parameters.-                     CopyBufferInfo2KHR-                  -> io ()-cmdCopyBuffer2KHR commandBuffer copyBufferInfo = liftIO . evalContT $ do-  let vkCmdCopyBuffer2KHRPtr = pVkCmdCopyBuffer2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyBuffer2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer2KHR is null" Nothing Nothing-  let vkCmdCopyBuffer2KHR' = mkVkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHRPtr-  pCopyBufferInfo <- ContT $ withCStruct (copyBufferInfo)-  lift $ traceAroundEvent "vkCmdCopyBuffer2KHR" (vkCmdCopyBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyImage2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()---- | vkCmdCopyImage2KHR - Copy data between images------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ -   #VUID-vkCmdCopyImage2KHR-commandBuffer-01825# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImage2KHR-commandBuffer-01826# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImage2KHR-commandBuffer-01827# If @commandBuffer@ is---     a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyImage2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyImage2KHR-pCopyImageInfo-parameter# @pCopyImageInfo@---     /must/ be a valid pointer to a valid 'CopyImageInfo2KHR' structure------ -   #VUID-vkCmdCopyImage2KHR-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-vkCmdCopyImage2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyImage2KHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageInfo2KHR'-cmdCopyImage2KHR :: forall io-                  . (MonadIO io)-                 => -- | @commandBuffer@ is the command buffer into which the command will be-                    -- recorded.-                    CommandBuffer-                 -> -- | @pCopyImageInfo@ is a pointer to a 'CopyImageInfo2KHR' structure-                    -- describing the copy parameters.-                    CopyImageInfo2KHR-                 -> io ()-cmdCopyImage2KHR commandBuffer copyImageInfo = liftIO . evalContT $ do-  let vkCmdCopyImage2KHRPtr = pVkCmdCopyImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyImage2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage2KHR is null" Nothing Nothing-  let vkCmdCopyImage2KHR' = mkVkCmdCopyImage2KHR vkCmdCopyImage2KHRPtr-  pCopyImageInfo <- ContT $ withCStruct (copyImageInfo)-  lift $ traceAroundEvent "vkCmdCopyImage2KHR" (vkCmdCopyImage2KHR' (commandBufferHandle (commandBuffer)) pCopyImageInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBlitImage2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()---- | vkCmdBlitImage2KHR - Copy regions of an image, potentially performing--- format conversion,------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ -   #VUID-vkCmdBlitImage2KHR-commandBuffer-01834# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdBlitImage2KHR-commandBuffer-01835# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdBlitImage2KHR-commandBuffer-01836# If @commandBuffer@ is---     a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBlitImage2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBlitImage2KHR-pBlitImageInfo-parameter# @pBlitImageInfo@---     /must/ be a valid pointer to a valid 'BlitImageInfo2KHR' structure------ -   #VUID-vkCmdBlitImage2KHR-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-vkCmdBlitImage2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBlitImage2KHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'BlitImageInfo2KHR', 'Vulkan.Core10.Handles.CommandBuffer'-cmdBlitImage2KHR :: forall io-                  . (MonadIO io)-                 => -- | @commandBuffer@ is the command buffer into which the command will be-                    -- recorded.-                    CommandBuffer-                 -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2KHR' structure-                    -- describing the blit parameters.-                    BlitImageInfo2KHR-                 -> io ()-cmdBlitImage2KHR commandBuffer blitImageInfo = liftIO . evalContT $ do-  let vkCmdBlitImage2KHRPtr = pVkCmdBlitImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBlitImage2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage2KHR is null" Nothing Nothing-  let vkCmdBlitImage2KHR' = mkVkCmdBlitImage2KHR vkCmdBlitImage2KHRPtr-  pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)-  lift $ traceAroundEvent "vkCmdBlitImage2KHR" (vkCmdBlitImage2KHR' (commandBufferHandle (commandBuffer)) pBlitImageInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyBufferToImage2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()---- | vkCmdCopyBufferToImage2KHR - Copy data from a buffer into an image------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ -   #VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01828# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01829# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01830# If---     @commandBuffer@ is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyBufferToImage2KHR-pCopyBufferToImageInfo-parameter#---     @pCopyBufferToImageInfo@ /must/ be a valid pointer to a valid---     'CopyBufferToImageInfo2KHR' structure------ -   #VUID-vkCmdCopyBufferToImage2KHR-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-vkCmdCopyBufferToImage2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyBufferToImage2KHR-renderpass# This command /must/---     only be called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferToImageInfo2KHR'-cmdCopyBufferToImage2KHR :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command will be-                            -- recorded.-                            CommandBuffer-                         -> -- | @pCopyBufferToImageInfo@ is a pointer to a 'CopyBufferToImageInfo2KHR'-                            -- structure describing the copy parameters.-                            CopyBufferToImageInfo2KHR-                         -> io ()-cmdCopyBufferToImage2KHR commandBuffer copyBufferToImageInfo = liftIO . evalContT $ do-  let vkCmdCopyBufferToImage2KHRPtr = pVkCmdCopyBufferToImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyBufferToImage2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage2KHR is null" Nothing Nothing-  let vkCmdCopyBufferToImage2KHR' = mkVkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHRPtr-  pCopyBufferToImageInfo <- ContT $ withCStruct (copyBufferToImageInfo)-  lift $ traceAroundEvent "vkCmdCopyBufferToImage2KHR" (vkCmdCopyBufferToImage2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyImageToBuffer2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()---- | vkCmdCopyImageToBuffer2KHR - Copy image data into a buffer------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ -   #VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01831# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01832# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01833# If---     @commandBuffer@ is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyImageToBuffer2KHR-pCopyImageToBufferInfo-parameter#---     @pCopyImageToBufferInfo@ /must/ be a valid pointer to a valid---     'CopyImageToBufferInfo2KHR' structure------ -   #VUID-vkCmdCopyImageToBuffer2KHR-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-vkCmdCopyImageToBuffer2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyImageToBuffer2KHR-renderpass# This command /must/---     only be called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageToBufferInfo2KHR'-cmdCopyImageToBuffer2KHR :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command will be-                            -- recorded.-                            CommandBuffer-                         -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'CopyImageToBufferInfo2KHR'-                            -- structure describing the copy parameters.-                            CopyImageToBufferInfo2KHR-                         -> io ()-cmdCopyImageToBuffer2KHR commandBuffer copyImageToBufferInfo = liftIO . evalContT $ do-  let vkCmdCopyImageToBuffer2KHRPtr = pVkCmdCopyImageToBuffer2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyImageToBuffer2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer2KHR is null" Nothing Nothing-  let vkCmdCopyImageToBuffer2KHR' = mkVkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHRPtr-  pCopyImageToBufferInfo <- ContT $ withCStruct (copyImageToBufferInfo)-  lift $ traceAroundEvent "vkCmdCopyImageToBuffer2KHR" (vkCmdCopyImageToBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResolveImage2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()---- | vkCmdResolveImage2KHR - Resolve regions of an image------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ -   #VUID-vkCmdResolveImage2KHR-commandBuffer-01837# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdResolveImage2KHR-commandBuffer-01838# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdResolveImage2KHR-commandBuffer-01839# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResolveImage2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResolveImage2KHR-pResolveImageInfo-parameter#---     @pResolveImageInfo@ /must/ be a valid pointer to a valid---     'ResolveImageInfo2KHR' structure------ -   #VUID-vkCmdResolveImage2KHR-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-vkCmdResolveImage2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdResolveImage2KHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'ResolveImageInfo2KHR'-cmdResolveImage2KHR :: forall io-                     . (MonadIO io)-                    => -- | @commandBuffer@ is the command buffer into which the command will be-                       -- recorded.-                       CommandBuffer-                    -> -- | @pResolveImageInfo@ is a pointer to a 'ResolveImageInfo2KHR' structure-                       -- describing the resolve parameters.-                       ResolveImageInfo2KHR-                    -> io ()-cmdResolveImage2KHR commandBuffer resolveImageInfo = liftIO . evalContT $ do-  let vkCmdResolveImage2KHRPtr = pVkCmdResolveImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdResolveImage2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage2KHR is null" Nothing Nothing-  let vkCmdResolveImage2KHR' = mkVkCmdResolveImage2KHR vkCmdResolveImage2KHRPtr-  pResolveImageInfo <- ContT $ withCStruct (resolveImageInfo)-  lift $ traceAroundEvent "vkCmdResolveImage2KHR" (vkCmdResolveImage2KHR' (commandBufferHandle (commandBuffer)) pResolveImageInfo)-  pure $ ()----- | VkBufferCopy2KHR - Structure specifying a buffer copy operation------ == Valid Usage------ -   #VUID-VkBufferCopy2KHR-size-01988# The @size@ /must/ be greater than---     @0@------ == Valid Usage (Implicit)------ -   #VUID-VkBufferCopy2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'------ -   #VUID-VkBufferCopy2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'CopyBufferInfo2KHR', 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferCopy2KHR = BufferCopy2KHR-  { -- | @srcOffset@ is the starting offset in bytes from the start of-    -- @srcBuffer@.-    srcOffset :: DeviceSize-  , -- | @dstOffset@ is the starting offset in bytes from the start of-    -- @dstBuffer@.-    dstOffset :: DeviceSize-  , -- | @size@ is the number of bytes to copy.-    size :: DeviceSize-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferCopy2KHR)-#endif-deriving instance Show BufferCopy2KHR--instance ToCStruct BufferCopy2KHR where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferCopy2KHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (srcOffset)-    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (dstOffset)-    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (size)-    f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)-    f--instance FromCStruct BufferCopy2KHR where-  peekCStruct p = do-    srcOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))-    dstOffset <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))-    size <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))-    pure $ BufferCopy2KHR-             srcOffset dstOffset size--instance Storable BufferCopy2KHR where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferCopy2KHR where-  zero = BufferCopy2KHR-           zero-           zero-           zero----- | VkImageCopy2KHR - Structure specifying an image copy operation------ == Valid Usage------ -   #VUID-VkImageCopy2KHR-extent-00140# The number of slices of the---     @extent@ (for 3D) or layers of the @srcSubresource@ (for non-3D)---     /must/ match the number of slices of the @extent@ (for 3D) or layers---     of the @dstSubresource@ (for non-3D)------ == Valid Usage (Implicit)------ -   #VUID-VkImageCopy2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'------ -   #VUID-VkImageCopy2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkImageCopy2KHR-srcSubresource-parameter# @srcSubresource@---     /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ -   #VUID-VkImageCopy2KHR-dstSubresource-parameter# @dstSubresource@---     /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'CopyImageInfo2KHR', 'Vulkan.Core10.FundamentalTypes.Extent3D',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageCopy2KHR = ImageCopy2KHR-  { -- | @srcSubresource@ and @dstSubresource@ are-    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' structures-    -- specifying the image subresources of the images used for the source and-    -- destination image data, respectively.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets-    -- in texels of the sub-regions of the source and destination image data.-    srcOffset :: Offset3D-  , -- No documentation found for Nested "VkImageCopy2KHR" "dstSubresource"-    dstSubresource :: ImageSubresourceLayers-  , -- No documentation found for Nested "VkImageCopy2KHR" "dstOffset"-    dstOffset :: Offset3D-  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@-    -- and @depth@.-    extent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageCopy2KHR)-#endif-deriving instance Show ImageCopy2KHR--instance ToCStruct ImageCopy2KHR where-  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageCopy2KHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)-    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)-    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)-    f-  cStructSize = 88-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct ImageCopy2KHR where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))-    extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))-    pure $ ImageCopy2KHR-             srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageCopy2KHR where-  sizeOf ~_ = 88-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageCopy2KHR where-  zero = ImageCopy2KHR-           zero-           zero-           zero-           zero-           zero----- | VkImageBlit2KHR - Structure specifying an image blit operation------ = Description------ For each element of the @pRegions@ array, a blit operation is performed--- for the specified source and destination regions.------ == Valid Usage------ -   #VUID-VkImageBlit2KHR-aspectMask-00238# The @aspectMask@ member of---     @srcSubresource@ and @dstSubresource@ /must/ match------ -   #VUID-VkImageBlit2KHR-layerCount-00239# The @layerCount@ member of---     @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ -   #VUID-VkImageBlit2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'------ -   #VUID-VkImageBlit2KHR-pNext-pNext# @pNext@ /must/ be @NULL@ or a---     pointer to a valid instance of---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'------ -   #VUID-VkImageBlit2KHR-sType-unique# The @sType@ value of each struct---     in the @pNext@ chain /must/ be unique------ -   #VUID-VkImageBlit2KHR-srcSubresource-parameter# @srcSubresource@---     /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ -   #VUID-VkImageBlit2KHR-dstSubresource-parameter# @dstSubresource@---     /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'BlitImageInfo2KHR',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageBlit2KHR (es :: [Type]) = ImageBlit2KHR-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.-    next :: Chain es-  , -- | @srcSubresource@ is the subresource to blit from.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffsets@ is a pointer to an array of two-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the-    -- bounds of the source region within @srcSubresource@.-    srcOffsets :: (Offset3D, Offset3D)-  , -- | @dstSubresource@ is the subresource to blit into.-    dstSubresource :: ImageSubresourceLayers-  , -- | @dstOffsets@ is a pointer to an array of two-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the-    -- bounds of the destination region within @dstSubresource@.-    dstOffsets :: (Offset3D, Offset3D)-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageBlit2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (ImageBlit2KHR es)--instance Extensible ImageBlit2KHR where-  extensibleTypeName = "ImageBlit2KHR"-  setNext ImageBlit2KHR{..} next' = ImageBlit2KHR{next = next', ..}-  getNext ImageBlit2KHR{..} = next-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b-  extends _ f-    | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f-    | otherwise = Nothing--instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es) where-  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageBlit2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)-    pNext'' <- fmap castPtr . ContT $ withChain (next)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''-    lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))-    lift $ case (srcOffsets) of-      (e0, e1) -> do-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))-    lift $ case (dstOffsets) of-      (e0, e1) -> do-        poke (pDstOffsets' :: Ptr Offset3D) (e0)-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    lift $ f-  cStructSize = 96-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)-    pNext' <- fmap castPtr . ContT $ withZeroChain @es-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))-    lift $ case ((zero, zero)) of-      (e0, e1) -> do-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (zero)-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))-    lift $ case ((zero, zero)) of-      (e0, e1) -> do-        poke (pDstOffsets' :: Ptr Offset3D) (e0)-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    lift $ f--instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es) where-  peekCStruct p = do-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))-    next <- peekChain (castPtr pNext)-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))-    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))-    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))-    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers))-    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))-    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))-    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))-    pure $ ImageBlit2KHR-             next srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))--instance es ~ '[] => Zero (ImageBlit2KHR es) where-  zero = ImageBlit2KHR-           ()-           zero-           (zero, zero)-           zero-           (zero, zero)----- | VkBufferImageCopy2KHR - Structure specifying a buffer image copy--- operation------ = Description------ This structure is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy', but adds @sType@--- and @pNext@ parameters, allowing it to be more easily extended.------ == Valid Usage------ -   #VUID-VkBufferImageCopy2KHR-bufferRowLength-00195# @bufferRowLength@---     /must/ be @0@, or greater than or equal to the @width@ member of---     @imageExtent@------ -   #VUID-VkBufferImageCopy2KHR-bufferImageHeight-00196#---     @bufferImageHeight@ /must/ be @0@, or greater than or equal to the---     @height@ member of @imageExtent@------ -   #VUID-VkBufferImageCopy2KHR-aspectMask-00212# The @aspectMask@---     member of @imageSubresource@ /must/ only have a single bit set------ == Valid Usage (Implicit)------ -   #VUID-VkBufferImageCopy2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'------ -   #VUID-VkBufferImageCopy2KHR-pNext-pNext# @pNext@ /must/ be @NULL@ or---     a pointer to a valid instance of---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'------ -   #VUID-VkBufferImageCopy2KHR-sType-unique# The @sType@ value of each---     struct in the @pNext@ chain /must/ be unique------ -   #VUID-VkBufferImageCopy2KHR-imageSubresource-parameter#---     @imageSubresource@ /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'CopyBufferToImageInfo2KHR', 'CopyImageToBufferInfo2KHR',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.FundamentalTypes.Extent3D',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferImageCopy2KHR (es :: [Type]) = BufferImageCopy2KHR-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.-    next :: Chain es-  , -- | @bufferOffset@ is the offset in bytes from the start of the buffer-    -- object where the image data is copied from or to.-    bufferOffset :: DeviceSize-  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion-    -- of a larger two- or three-dimensional image in buffer memory, and-    -- control the addressing calculations. If either of these values is zero,-    -- that aspect of the buffer memory is considered to be tightly packed-    -- according to the @imageExtent@.-    bufferRowLength :: Word32-  , -- No documentation found for Nested "VkBufferImageCopy2KHR" "bufferImageHeight"-    bufferImageHeight :: Word32-  , -- | @imageSubresource@ is a-    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to-    -- specify the specific image subresources of the image used for the source-    -- or destination image data.-    imageSubresource :: ImageSubresourceLayers-  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the-    -- sub-region of the source or destination image data.-    imageOffset :: Offset3D-  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,-    -- @height@ and @depth@.-    imageExtent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferImageCopy2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (BufferImageCopy2KHR es)--instance Extensible BufferImageCopy2KHR where-  extensibleTypeName = "BufferImageCopy2KHR"-  setNext BufferImageCopy2KHR{..} next' = BufferImageCopy2KHR{next = next', ..}-  getNext BufferImageCopy2KHR{..} = next-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b-  extends _ f-    | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f-    | otherwise = Nothing--instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es) where-  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferImageCopy2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)-    pNext'' <- fmap castPtr . ContT $ withChain (next)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''-    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (bufferOffset)-    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bufferRowLength)-    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (bufferImageHeight)-    lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource)-    lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset)-    lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent)-    lift $ f-  cStructSize = 72-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)-    pNext' <- fmap castPtr . ContT $ withZeroChain @es-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)-    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero)-    lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero)-    lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)-    lift $ f--instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es) where-  peekCStruct p = do-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))-    next <- peekChain (castPtr pNext)-    bufferOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))-    bufferRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))-    bufferImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))-    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))-    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))-    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))-    pure $ BufferImageCopy2KHR-             next bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent--instance es ~ '[] => Zero (BufferImageCopy2KHR es) where-  zero = BufferImageCopy2KHR-           ()-           zero-           zero-           zero-           zero-           zero-           zero----- | VkImageResolve2KHR - Structure specifying an image resolve operation------ == Valid Usage------ -   #VUID-VkImageResolve2KHR-aspectMask-00266# The @aspectMask@ member---     of @srcSubresource@ and @dstSubresource@ /must/ only contain---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageResolve2KHR-layerCount-00267# The @layerCount@ member---     of @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ -   #VUID-VkImageResolve2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'------ -   #VUID-VkImageResolve2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkImageResolve2KHR-srcSubresource-parameter# @srcSubresource@---     /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ -   #VUID-VkImageResolve2KHR-dstSubresource-parameter# @dstSubresource@---     /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'---     structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'ResolveImageInfo2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageResolve2KHR = ImageResolve2KHR-  { -- | @srcSubresource@ and @dstSubresource@ are-    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' structures-    -- specifying the image subresources of the images used for the source and-    -- destination image data, respectively. Resolve of depth\/stencil images-    -- is not supported.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets-    -- in texels of the sub-regions of the source and destination image data.-    srcOffset :: Offset3D-  , -- No documentation found for Nested "VkImageResolve2KHR" "dstSubresource"-    dstSubresource :: ImageSubresourceLayers-  , -- No documentation found for Nested "VkImageResolve2KHR" "dstOffset"-    dstOffset :: Offset3D-  , -- | @extent@ is the size in texels of the source image to resolve in-    -- @width@, @height@ and @depth@.-    extent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageResolve2KHR)-#endif-deriving instance Show ImageResolve2KHR--instance ToCStruct ImageResolve2KHR where-  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageResolve2KHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)-    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)-    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)-    f-  cStructSize = 88-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct ImageResolve2KHR where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))-    extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))-    pure $ ImageResolve2KHR-             srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageResolve2KHR where-  sizeOf ~_ = 88-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageResolve2KHR where-  zero = ImageResolve2KHR-           zero-           zero-           zero-           zero-           zero----- | VkCopyBufferInfo2KHR - Structure specifying parameters of a buffer copy--- command------ = Description------ Members defined by this structure with the same name as parameters in--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer' have the identical--- effect to those parameters; the child structure 'BufferCopy2KHR' is a--- variant of 'Vulkan.Core10.CommandBufferBuilding.BufferCopy' which--- includes @sType@ and @pNext@ parameters, allowing it to be extended.------ == Valid Usage------ -   #VUID-VkCopyBufferInfo2KHR-srcOffset-00113# The @srcOffset@ member---     of each element of @pRegions@ /must/ be less than the size of---     @srcBuffer@------ -   #VUID-VkCopyBufferInfo2KHR-dstOffset-00114# The @dstOffset@ member---     of each element of @pRegions@ /must/ be less than the size of---     @dstBuffer@------ -   #VUID-VkCopyBufferInfo2KHR-size-00115# The @size@ member of each---     element of @pRegions@ /must/ be less than or equal to the size of---     @srcBuffer@ minus @srcOffset@------ -   #VUID-VkCopyBufferInfo2KHR-size-00116# The @size@ member of each---     element of @pRegions@ /must/ be less than or equal to the size of---     @dstBuffer@ minus @dstOffset@------ -   #VUID-VkCopyBufferInfo2KHR-pRegions-00117# The union of the source---     regions, and the union of the destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-VkCopyBufferInfo2KHR-srcBuffer-00118# @srcBuffer@ /must/ have---     been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-VkCopyBufferInfo2KHR-srcBuffer-00119# If @srcBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyBufferInfo2KHR-dstBuffer-00120# @dstBuffer@ /must/ have---     been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-VkCopyBufferInfo2KHR-dstBuffer-00121# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ == Valid Usage (Implicit)------ -   #VUID-VkCopyBufferInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'------ -   #VUID-VkCopyBufferInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkCopyBufferInfo2KHR-srcBuffer-parameter# @srcBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-VkCopyBufferInfo2KHR-dstBuffer-parameter# @dstBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-VkCopyBufferInfo2KHR-pRegions-parameter# @pRegions@ /must/ be---     a valid pointer to an array of @regionCount@ valid 'BufferCopy2KHR'---     structures------ -   #VUID-VkCopyBufferInfo2KHR-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-VkCopyBufferInfo2KHR-commonparent# Both of @dstBuffer@, and---     @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyBuffer2KHR'-data CopyBufferInfo2KHR = CopyBufferInfo2KHR-  { -- | @srcBuffer@ is the source buffer.-    srcBuffer :: Buffer-  , -- | @dstBuffer@ is the destination buffer.-    dstBuffer :: Buffer-  , -- | @pRegions@ is a pointer to an array of 'BufferCopy2KHR' structures-    -- specifying the regions to copy.-    regions :: Vector BufferCopy2KHR-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyBufferInfo2KHR)-#endif-deriving instance Show CopyBufferInfo2KHR--instance ToCStruct CopyBufferInfo2KHR where-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CopyBufferInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)-    lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (dstBuffer)-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytes @BufferCopy2KHR ((Data.Vector.length (regions)) * 40)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (40 * (i)) :: Ptr BufferCopy2KHR) (e)) (regions)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR))) (pPRegions')-    lift $ f-  cStructSize = 48-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)-    poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)-    f--instance FromCStruct CopyBufferInfo2KHR where-  peekCStruct p = do-    srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))-    dstBuffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer))-    regionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    pRegions <- peek @(Ptr BufferCopy2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR)))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferCopy2KHR ((pRegions `advancePtrBytes` (40 * (i)) :: Ptr BufferCopy2KHR)))-    pure $ CopyBufferInfo2KHR-             srcBuffer dstBuffer pRegions'--instance Zero CopyBufferInfo2KHR where-  zero = CopyBufferInfo2KHR-           zero-           zero-           mempty----- | VkCopyImageInfo2KHR - Structure specifying parameters of an image copy--- command------ == Valid Usage------ -   #VUID-VkCopyImageInfo2KHR-pRegions-00124# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01995# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-VkCopyImageInfo2KHR-srcImage-00126# @srcImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01546# If @srcImage@ is---     non-sparse then the image or /disjoint/ plane to be copied /must/ be---     bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyImageInfo2KHR-srcImageLayout-00128# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-VkCopyImageInfo2KHR-srcImageLayout-01917# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01996# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-VkCopyImageInfo2KHR-dstImage-00131# @dstImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01547# If @dstImage@ is---     non-sparse then the image or /disjoint/ plane that is the---     destination of the copy /must/ be bound completely and contiguously---     to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyImageInfo2KHR-dstImageLayout-00133# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-VkCopyImageInfo2KHR-dstImageLayout-01395# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01548# If the---     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ is not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ /must/ be compatible, as defined---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>------ -   #VUID-VkCopyImageInfo2KHR-None-01549# In a copy to or from a plane---     of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,---     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane---     /must/ be compatible according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>---     for the plane being copied------ -   #VUID-VkCopyImageInfo2KHR-srcImage-00136# The sample count of---     @srcImage@ and @dstImage@ /must/ match------ -   #VUID-VkCopyImageInfo2KHR-srcSubresource-01696# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-VkCopyImageInfo2KHR-dstSubresource-01697# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-VkCopyImageInfo2KHR-srcSubresource-01698# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-VkCopyImageInfo2KHR-dstSubresource-01699# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-VkCopyImageInfo2KHR-srcOffset-01783# The @srcOffset@ and---     @extent@ members of each element of @pRegions@ /must/ respect the---     image transfer granularity requirements of @commandBuffer@’s command---     pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-VkCopyImageInfo2KHR-dstOffset-01784# The @dstOffset@ and---     @extent@ members of each element of @pRegions@ /must/ respect the---     image transfer granularity requirements of @commandBuffer@’s command---     pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-VkCopyImageInfo2KHR-dstImage-02542# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01551# If neither @srcImage@ nor---     @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     then for each element of @pRegions@, @srcSubresource.aspectMask@ and---     @dstSubresource.aspectMask@ /must/ match------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01552# If @srcImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>---     then for each element of @pRegions@, @srcSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01553# If @srcImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>---     then for each element of @pRegions@, @srcSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01554# If @dstImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>---     then for each element of @pRegions@, @dstSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01555# If @dstImage@ has a---     'Vulkan.Core10.Enums.Format.Format' with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>---     then for each element of @pRegions@, @dstSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01556# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     and the @dstImage@ does not have a multi-planar image format, then---     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01557# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     and the @srcImage@ does not have a multi-planar image format, then---     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkCopyImageInfo2KHR-srcImage-04443# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and---     @srcSubresource.layerCount@ /must/ be @1@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-04444# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and---     @dstSubresource.layerCount@ /must/ be @1@------ -   #VUID-VkCopyImageInfo2KHR-aspectMask-00142# For each element of---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-aspectMask-00143# For each element of---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-VkCopyImageInfo2KHR-srcOffset-00144# For each element of---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-srcOffset-00145# For each element of---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-00146# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-VkCopyImageInfo2KHR-srcOffset-00147# For each element of---     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01785# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01786# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01787# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01788# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01790# If @srcImage@ and---     @dstImage@ are both of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @extent.depth@ /must/ be @1@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01791# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @extent.depth@ /must/ equal---     @srcSubresource.layerCount@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01792# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @extent.depth@ /must/ equal---     @dstSubresource.layerCount@------ -   #VUID-VkCopyImageInfo2KHR-dstOffset-00150# For each element of---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkCopyImageInfo2KHR-dstOffset-00151# For each element of---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-00152# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-VkCopyImageInfo2KHR-dstOffset-00153# For each element of---     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01727# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, all members of @srcOffset@---     /must/ be a multiple of the corresponding dimensions of the---     compressed texel block------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01728# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.width@ /must/ be a---     multiple of the compressed texel block width or (@extent.width@ +---     @srcOffset.x@) /must/ equal the width of the specified---     @srcSubresource@ of @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01729# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.height@ /must/ be a---     multiple of the compressed texel block height or (@extent.height@ +---     @srcOffset.y@) /must/ equal the height of the specified---     @srcSubresource@ of @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-01730# If @srcImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@extent.depth@ +---     @srcOffset.z@) /must/ equal the depth of the specified---     @srcSubresource@ of @srcImage@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01731# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, all members of @dstOffset@---     /must/ be a multiple of the corresponding dimensions of the---     compressed texel block------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01732# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.width@ /must/ be a---     multiple of the compressed texel block width or (@extent.width@ +---     @dstOffset.x@) /must/ equal the width of the specified---     @dstSubresource@ of @dstImage@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01733# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.height@ /must/ be a---     multiple of the compressed texel block height or (@extent.height@ +---     @dstOffset.y@) /must/ equal the height of the specified---     @dstSubresource@ of @dstImage@------ -   #VUID-VkCopyImageInfo2KHR-dstImage-01734# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     then for each element of @pRegions@, @extent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@extent.depth@ +---     @dstOffset.z@) /must/ equal the depth of the specified---     @dstSubresource@ of @dstImage@------ == Valid Usage (Implicit)------ -   #VUID-VkCopyImageInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'------ -   #VUID-VkCopyImageInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkCopyImageInfo2KHR-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkCopyImageInfo2KHR-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-VkCopyImageInfo2KHR-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkCopyImageInfo2KHR-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-VkCopyImageInfo2KHR-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageCopy2KHR'---     structures------ -   #VUID-VkCopyImageInfo2KHR-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-VkCopyImageInfo2KHR-commonparent# Both of @dstImage@, and---     @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Image', 'ImageCopy2KHR',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyImage2KHR'-data CopyImageInfo2KHR = CopyImageInfo2KHR-  { -- | @srcImage@ is the source image.-    srcImage :: Image-  , -- | @srcImageLayout@ is the current layout of the source image subresource.-    srcImageLayout :: ImageLayout-  , -- | @dstImage@ is the destination image.-    dstImage :: Image-  , -- | @dstImageLayout@ is the current layout of the destination image-    -- subresource.-    dstImageLayout :: ImageLayout-  , -- | @pRegions@ is a pointer to an array of 'ImageCopy2KHR' structures-    -- specifying the regions to copy.-    regions :: Vector ImageCopy2KHR-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyImageInfo2KHR)-#endif-deriving instance Show CopyImageInfo2KHR--instance ToCStruct CopyImageInfo2KHR where-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CopyImageInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)-    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)-    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytes @ImageCopy2KHR ((Data.Vector.length (regions)) * 88)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2KHR) (e)) (regions)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR))) (pPRegions')-    lift $ f-  cStructSize = 56-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)-    f--instance FromCStruct CopyImageInfo2KHR where-  peekCStruct p = do-    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))-    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))-    dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))-    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))-    regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))-    pRegions <- peek @(Ptr ImageCopy2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR)))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2KHR ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2KHR)))-    pure $ CopyImageInfo2KHR-             srcImage srcImageLayout dstImage dstImageLayout pRegions'--instance Zero CopyImageInfo2KHR where-  zero = CopyImageInfo2KHR-           zero-           zero-           zero-           zero-           mempty----- | VkBlitImageInfo2KHR - Structure specifying parameters of blit image--- command------ == Valid Usage------ -   #VUID-VkBlitImageInfo2KHR-pRegions-00215# The source region---     specified by each element of @pRegions@ /must/ be a region that is---     contained within @srcImage@------ -   #VUID-VkBlitImageInfo2KHR-pRegions-00216# The destination region---     specified by each element of @pRegions@ /must/ be a region that is---     contained within @dstImage@------ -   #VUID-VkBlitImageInfo2KHR-pRegions-00217# The union of all---     destination regions, specified by the elements of @pRegions@, /must/---     not overlap in memory with any texel that /may/ be sampled during---     the blit operation------ -   #VUID-VkBlitImageInfo2KHR-srcImage-01999# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'------ -   #VUID-VkBlitImageInfo2KHR-srcImage-06421# @srcImage@ /must/ not use---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00219# @srcImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00220# If @srcImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkBlitImageInfo2KHR-srcImageLayout-00221# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-VkBlitImageInfo2KHR-srcImageLayout-01398# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-VkBlitImageInfo2KHR-dstImage-02000# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'------ -   #VUID-VkBlitImageInfo2KHR-dstImage-06422# @dstImage@ /must/ not use---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y’CBCR conversion>------ -   #VUID-VkBlitImageInfo2KHR-dstImage-00224# @dstImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-VkBlitImageInfo2KHR-dstImage-00225# If @dstImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkBlitImageInfo2KHR-dstImageLayout-00226# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-VkBlitImageInfo2KHR-dstImageLayout-01399# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00229# If either of @srcImage@ or---     @dstImage@ was created with a signed integer---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been---     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00230# If either of @srcImage@ or---     @dstImage@ was created with an unsigned integer---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been---     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00231# If either of @srcImage@ or---     @dstImage@ was created with a depth\/stencil format, the other---     /must/ have exactly the same format------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00232# If @srcImage@ was created---     with a depth\/stencil format, @filter@ /must/ be---     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00233# @srcImage@ /must/ have---     been created with a @samples@ value of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkBlitImageInfo2KHR-dstImage-00234# @dstImage@ /must/ have---     been created with a @samples@ value of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkBlitImageInfo2KHR-filter-02001# If @filter@ is---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-VkBlitImageInfo2KHR-filter-02002# If @filter@ is---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-VkBlitImageInfo2KHR-filter-00237# If @filter@ is---     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@---     /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-VkBlitImageInfo2KHR-srcSubresource-01705# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-VkBlitImageInfo2KHR-dstSubresource-01706# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-VkBlitImageInfo2KHR-srcSubresource-01707# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-VkBlitImageInfo2KHR-dstSubresource-01708# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-VkBlitImageInfo2KHR-dstImage-02545# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00240# If either @srcImage@ or---     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',---     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@---     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and---     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/---     each be @1@------ -   #VUID-VkBlitImageInfo2KHR-aspectMask-00241# For each element of---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-VkBlitImageInfo2KHR-aspectMask-00242# For each element of---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-VkBlitImageInfo2KHR-srcOffset-00243# For each element of---     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be---     greater than or equal to @0@ and less than or equal to the width of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkBlitImageInfo2KHR-srcOffset-00244# For each element of---     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be---     greater than or equal to @0@ and less than or equal to the height of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00245# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y---     /must/ be @1@------ -   #VUID-VkBlitImageInfo2KHR-srcOffset-00246# For each element of---     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be---     greater than or equal to @0@ and less than or equal to the depth of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkBlitImageInfo2KHR-srcImage-00247# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z---     /must/ be @1@------ -   #VUID-VkBlitImageInfo2KHR-dstOffset-00248# For each element of---     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be---     greater than or equal to @0@ and less than or equal to the width of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkBlitImageInfo2KHR-dstOffset-00249# For each element of---     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be---     greater than or equal to @0@ and less than or equal to the height of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkBlitImageInfo2KHR-dstImage-00250# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y---     /must/ be @1@------ -   #VUID-VkBlitImageInfo2KHR-dstOffset-00251# For each element of---     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be---     greater than or equal to @0@ and less than or equal to the depth of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkBlitImageInfo2KHR-dstImage-00252# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z---     /must/ be @1@------ -   #VUID-VkBlitImageInfo2KHR-pRegions-04561# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be---     block-compressed images------ -   #VUID-VkBlitImageInfo2KHR-pRegions-06207# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @srcImage@ /must/ be of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-VkBlitImageInfo2KHR-pRegions-06208# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @srcImage@ /must/ not have a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ == Valid Usage (Implicit)------ -   #VUID-VkBlitImageInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'------ -   #VUID-VkBlitImageInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkBlitImageInfo2KHR-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkBlitImageInfo2KHR-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-VkBlitImageInfo2KHR-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkBlitImageInfo2KHR-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-VkBlitImageInfo2KHR-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageBlit2KHR'---     structures------ -   #VUID-VkBlitImageInfo2KHR-filter-parameter# @filter@ /must/ be a---     valid 'Vulkan.Core10.Enums.Filter.Filter' value------ -   #VUID-VkBlitImageInfo2KHR-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-VkBlitImageInfo2KHR-commonparent# Both of @dstImage@, and---     @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',--- 'ImageBlit2KHR', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2KHR'-data BlitImageInfo2KHR = BlitImageInfo2KHR-  { -- | @srcImage@ is the source image.-    srcImage :: Image-  , -- | @srcImageLayout@ is the layout of the source image subresources for the-    -- blit.-    srcImageLayout :: ImageLayout-  , -- | @dstImage@ is the destination image.-    dstImage :: Image-  , -- | @dstImageLayout@ is the layout of the destination image subresources for-    -- the blit.-    dstImageLayout :: ImageLayout-  , -- | @pRegions@ is a pointer to an array of 'ImageBlit2KHR' structures-    -- specifying the regions to blit.-    regions :: Vector (SomeStruct ImageBlit2KHR)-  , -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter-    -- to apply if the blits require scaling.-    filter' :: Filter-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BlitImageInfo2KHR)-#endif-deriving instance Show BlitImageInfo2KHR--instance ToCStruct BlitImageInfo2KHR where-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BlitImageInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)-    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)-    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytes @(ImageBlit2KHR _) ((Data.Vector.length (regions)) * 96)-    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (96 * (i)) :: Ptr (ImageBlit2KHR _))) (e) . ($ ())) (regions)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _)))) (pPRegions')-    lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (filter')-    lift $ f-  cStructSize = 64-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)-    f--instance FromCStruct BlitImageInfo2KHR where-  peekCStruct p = do-    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))-    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))-    dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))-    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))-    regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))-    pRegions <- peek @(Ptr (ImageBlit2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _))))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2KHR _)))))-    filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))-    pure $ BlitImageInfo2KHR-             srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'--instance Zero BlitImageInfo2KHR where-  zero = BlitImageInfo2KHR-           zero-           zero-           zero-           zero-           mempty-           zero----- | VkCopyBufferToImageInfo2KHR - Structure specifying parameters of a--- buffer to image copy command------ == Valid Usage------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04565# If the image---     region specified by each element of @pRegions@ does not contain---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, it /must/ be a region that is contained within---     the specified @imageSubresource@ of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image---     region specified by each element of @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, the rotated destination region as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>---     /must/ be contained within @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @dstImage@ /must/ not be a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @dstImage@ /must/ be of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @dstImage@ /must/ not have a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-00171# @srcBuffer@ /must/---     be large enough to contain all buffer locations that are accessed---     according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-00173# The union of all---     source regions, and the union of all destination regions, specified---     by the elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00174# @srcBuffer@---     /must/ have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-01997# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00176# If @srcBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-00177# @dstImage@ /must/---     have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-00178# If @dstImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-00179# @dstImage@ /must/---     have a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-00180#---     @dstImageLayout@ /must/ specify the layout of the image subresources---     of @dstImage@ specified in @pRegions@ at the time this command is---     executed on a 'Vulkan.Core10.Handles.Device'------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-01396#---     @dstImageLayout@ /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01701# The---     @imageSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01702# The---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-01793# The---     @imageOffset@ and @imageExtent@ members of each element of---     @pRegions@ /must/ respect the image transfer granularity---     requirements of @commandBuffer@’s command pool’s queue family, as---     described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-02543# @dstImage@ /must/---     not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04477# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each---     element of @pRegions@, the @aspectMask@ member of @imageSubresource@---     /must/ not be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06223# For each element---     of @pRegions@ not containing---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ +---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and---     less than or equal to the width of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06224# For each element---     of @pRegions@ not containing---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ +---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and---     less than or equal to the height of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01558# If @dstImage@---     does not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01559# If @dstImage@---     has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   #VUID-VkCopyBufferToImageInfo2KHR-srcImage-00199# If @dstImage@ is---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and---     @imageExtent.height@ /must/ be @1@------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00200# For each---     element of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and---     less than or equal to the depth of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-srcImage-00201# If @dstImage@ is---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@---     /must/ be @1@------ -   #VUID-VkCopyBufferToImageInfo2KHR-bufferRowLength-00203# If---     @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ /must/ be a---     multiple of the compressed texel block width------ -   #VUID-VkCopyBufferToImageInfo2KHR-bufferImageHeight-00204# If---     @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferImageHeight@ /must/ be a---     multiple of the compressed texel block height------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00205# If @dstImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, all members of @imageOffset@ /must/---     be a multiple of the corresponding dimensions of the compressed---     texel block------ -   #VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-00206# If @dstImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple---     of the compressed texel block size in bytes------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00207# If @dstImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.width@ /must/ be a---     multiple of the compressed texel block width or (@imageExtent.width@---     + @imageOffset.x@) /must/ equal the width of the specified---     @imageSubresource@ of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00208# If @dstImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.height@ /must/ be a---     multiple of the compressed texel block height or---     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of---     the specified @imageSubresource@ of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00209# If @dstImage@---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@imageExtent.depth@---     + @imageOffset.z@) /must/ equal the depth of the specified---     @imageSubresource@ of @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-aspectMask-00211# For each element---     of @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-VkCopyBufferToImageInfo2KHR-aspectMask-01560# If @dstImage@---     has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @imageSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     (with---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     valid only for image formats with three planes)------ -   #VUID-VkCopyBufferToImageInfo2KHR-baseArrayLayer-00213# If---     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',---     for each element of @pRegions@, @imageSubresource.baseArrayLayer@---     /must/ be @0@ and @imageSubresource.layerCount@ /must/ be @1@------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04725# If @dstImage@ is---     not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ multiplied by the---     texel block size of @dstImage@ /must/ be less than or equal to 231-1------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04726# If @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ divided by the---     compressed texel block width and then multiplied by the texel block---     size of @dstImage@ /must/ be less than or equal to 231-1------ -   #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-VkCopyBufferToImageInfo2KHR-srcImage-04053# If @dstImage@ has---     a depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-VkCopyBufferToImageInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'------ -   #VUID-VkCopyBufferToImageInfo2KHR-pNext-pNext# @pNext@ /must/ be---     @NULL@------ -   #VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-parameter# @srcBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImage-parameter# @dstImage@---     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-parameter#---     @dstImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-parameter# @pRegions@---     /must/ be a valid pointer to an array of @regionCount@ valid---     'BufferImageCopy2KHR' structures------ -   #VUID-VkCopyBufferToImageInfo2KHR-regionCount-arraylength#---     @regionCount@ /must/ be greater than @0@------ -   #VUID-VkCopyBufferToImageInfo2KHR-commonparent# Both of @dstImage@,---     and @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2KHR',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdCopyBufferToImage2KHR'-data CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2KHR-  { -- | @srcBuffer@ is the source buffer.-    srcBuffer :: Buffer-  , -- | @dstImage@ is the destination image.-    dstImage :: Image-  , -- | @dstImageLayout@ is the layout of the destination image subresources for-    -- the copy.-    dstImageLayout :: ImageLayout-  , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2KHR' structures-    -- specifying the regions to copy.-    regions :: Vector (SomeStruct BufferImageCopy2KHR)-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyBufferToImageInfo2KHR)-#endif-deriving instance Show CopyBufferToImageInfo2KHR--instance ToCStruct CopyBufferToImageInfo2KHR where-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CopyBufferToImageInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)-    lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)-    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)-    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2KHR _) ((Data.Vector.length (regions)) * 72)-    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (regions)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')-    lift $ f-  cStructSize = 48-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)-    poke ((p `plusPtr` 24 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)-    f--instance FromCStruct CopyBufferToImageInfo2KHR where-  peekCStruct p = do-    srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))-    dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))-    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))-    regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))-    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _))))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))-    pure $ CopyBufferToImageInfo2KHR-             srcBuffer dstImage dstImageLayout pRegions'--instance Zero CopyBufferToImageInfo2KHR where-  zero = CopyBufferToImageInfo2KHR-           zero-           zero-           zero-           mempty----- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of an--- image to buffer copy command------ == Valid Usage------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04566# If the image---     region specified by each element of @pRegions@ does not contain---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, it /must/ be contained within the specified---     @imageSubresource@ of @srcImage@------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image---     region specified by each element of @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, the rotated source region as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>---     /must/ be contained within @srcImage@------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @srcImage@ /must/ not be a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @srcImage@ /must/ be of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206# If any element of---     @pRegions@ contains---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, then @srcImage@ /must/ not have a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-00183# @dstBuffer@ /must/---     be large enough to contain all buffer locations that are accessed---     according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-00184# The union of all---     source regions, and the union of all destination regions, specified---     by the elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00186# @srcImage@ /must/---     have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-01998# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00187# If @srcImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00191# @dstBuffer@---     /must/ have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00192# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00188# @srcImage@ /must/---     have a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-00189#---     @srcImageLayout@ /must/ specify the layout of the image subresources---     of @srcImage@ specified in @pRegions@ at the time this command is---     executed on a 'Vulkan.Core10.Handles.Device'------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-01397#---     @srcImageLayout@ /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01703# The---     @imageSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01704# The---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-01794# The---     @imageOffset@ and @imageExtent@ members of each element of---     @pRegions@ /must/ respect the image transfer granularity---     requirements of @commandBuffer@’s command pool’s queue family, as---     described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-02544# @srcImage@ /must/---     not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197# For each---     element of @pRegions@ not containing---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ +---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and---     less than or equal to the width of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00198# For each---     element of @pRegions@ not containing---     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ +---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and---     less than or equal to the height of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01558# If---     {imageparam} does not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01559# If---     {imageparam} has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00199# If {imageparam} is---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and---     @imageExtent.height@ /must/ be @1@------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00200# For each---     element of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and---     less than or equal to the depth of the specified @imageSubresource@---     of {imageparam}------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00201# If {imageparam} is---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@---     /must/ be @1@------ -   #VUID-VkCopyImageToBufferInfo2KHR-bufferRowLength-00203# If---     {imageparam} is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ /must/ be a---     multiple of the compressed texel block width------ -   #VUID-VkCopyImageToBufferInfo2KHR-bufferImageHeight-00204# If---     {imageparam} is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferImageHeight@ /must/ be a---     multiple of the compressed texel block height------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00205# If {imageparam}---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, all members of @imageOffset@ /must/---     be a multiple of the corresponding dimensions of the compressed---     texel block------ -   #VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-00206# If---     {imageparam} is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferOffset@ /must/ be a multiple---     of the compressed texel block size in bytes------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00207# If {imageparam}---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.width@ /must/ be a---     multiple of the compressed texel block width or (@imageExtent.width@---     + @imageOffset.x@) /must/ equal the width of the specified---     @imageSubresource@ of {imageparam}------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00208# If {imageparam}---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.height@ /must/ be a---     multiple of the compressed texel block height or---     (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of---     the specified @imageSubresource@ of {imageparam}------ -   #VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00209# If {imageparam}---     is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @imageExtent.depth@ /must/ be a---     multiple of the compressed texel block depth or (@imageExtent.depth@---     + @imageOffset.z@) /must/ equal the depth of the specified---     @imageSubresource@ of {imageparam}------ -   #VUID-VkCopyImageToBufferInfo2KHR-aspectMask-00211# For each element---     of @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects---     present in {imageparam}------ -   #VUID-VkCopyImageToBufferInfo2KHR-aspectMask-01560# If {imageparam}---     has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @imageSubresource.aspectMask@---     /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     (with---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'---     valid only for image formats with three planes)------ -   #VUID-VkCopyImageToBufferInfo2KHR-baseArrayLayer-00213# If---     {imageparam} is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element of---     @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and---     @imageSubresource.layerCount@ /must/ be @1@------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04725# If {imageparam} is---     not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ multiplied by the---     texel block size of {imageparam} /must/ be less than or equal to---     231-1------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04726# If {imageparam} is---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,---     for each element of @pRegions@, @bufferRowLength@ divided by the---     compressed texel block width and then multiplied by the texel block---     size of {imageparam} /must/ be less than or equal to 231-1------ -   #VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04052# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-04053# If {imageparam}---     has a depth\/stencil format, the @bufferOffset@ member of any---     element of @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-VkCopyImageToBufferInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'------ -   #VUID-VkCopyImageToBufferInfo2KHR-pNext-pNext# @pNext@ /must/ be---     @NULL@------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImage-parameter# @srcImage@---     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-parameter#---     @srcImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-parameter# @dstBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-parameter# @pRegions@---     /must/ be a valid pointer to an array of @regionCount@ valid---     'BufferImageCopy2KHR' structures------ -   #VUID-VkCopyImageToBufferInfo2KHR-regionCount-arraylength#---     @regionCount@ /must/ be greater than @0@------ -   #VUID-VkCopyImageToBufferInfo2KHR-commonparent# Both of @dstBuffer@,---     and @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2KHR',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdCopyImageToBuffer2KHR'-data CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2KHR-  { -- | @srcImage@ is the source image.-    srcImage :: Image-  , -- | @srcImageLayout@ is the layout of the source image subresources for the-    -- copy.-    srcImageLayout :: ImageLayout-  , -- | @dstBuffer@ is the destination buffer.-    dstBuffer :: Buffer-  , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2KHR' structures-    -- specifying the regions to copy.-    regions :: Vector (SomeStruct BufferImageCopy2KHR)-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyImageToBufferInfo2KHR)-#endif-deriving instance Show CopyImageToBufferInfo2KHR--instance ToCStruct CopyImageToBufferInfo2KHR where-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CopyImageToBufferInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)-    lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (dstBuffer)-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2KHR _) ((Data.Vector.length (regions)) * 72)-    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (regions)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')-    lift $ f-  cStructSize = 56-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)-    f--instance FromCStruct CopyImageToBufferInfo2KHR where-  peekCStruct p = do-    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))-    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))-    dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))-    regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))-    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _))))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))-    pure $ CopyImageToBufferInfo2KHR-             srcImage srcImageLayout dstBuffer pRegions'--instance Zero CopyImageToBufferInfo2KHR where-  zero = CopyImageToBufferInfo2KHR-           zero-           zero-           zero-           mempty----- | VkResolveImageInfo2KHR - Structure specifying parameters of resolve--- image command------ == Valid Usage------ -   #VUID-VkResolveImageInfo2KHR-pRegions-00255# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-VkResolveImageInfo2KHR-srcImage-00256# If @srcImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkResolveImageInfo2KHR-srcImage-00257# @srcImage@ /must/ have---     a sample count equal to any valid sample count value other than---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkResolveImageInfo2KHR-dstImage-00258# If @dstImage@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkResolveImageInfo2KHR-dstImage-00259# @dstImage@ /must/ have---     a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkResolveImageInfo2KHR-srcImageLayout-00260# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-VkResolveImageInfo2KHR-srcImageLayout-01400# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-VkResolveImageInfo2KHR-dstImageLayout-00262# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-VkResolveImageInfo2KHR-dstImageLayout-01401# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-VkResolveImageInfo2KHR-dstImage-02003# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ -   #VUID-VkResolveImageInfo2KHR-linearColorAttachment-06519# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>---     feature is enabled and the image is created with---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ -   #VUID-VkResolveImageInfo2KHR-srcImage-01386# @srcImage@ and---     @dstImage@ /must/ have been created with the same image format------ -   #VUID-VkResolveImageInfo2KHR-srcSubresource-01709# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-VkResolveImageInfo2KHR-dstSubresource-01710# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-VkResolveImageInfo2KHR-srcSubresource-01711# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @srcImage@ was created------ -   #VUID-VkResolveImageInfo2KHR-dstSubresource-01712# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @dstImage@ was created------ -   #VUID-VkResolveImageInfo2KHR-dstImage-02546# @dstImage@ and---     @srcImage@ /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-VkResolveImageInfo2KHR-srcImage-04446# If either @srcImage@ or---     @dstImage@ are of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and---     @srcSubresource.layerCount@ /must/ be @1@------ -   #VUID-VkResolveImageInfo2KHR-srcImage-04447# If either @srcImage@ or---     @dstImage@ are of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and---     @dstSubresource.layerCount@ /must/ be @1@------ -   #VUID-VkResolveImageInfo2KHR-srcOffset-00269# For each element of---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkResolveImageInfo2KHR-srcOffset-00270# For each element of---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkResolveImageInfo2KHR-srcImage-00271# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @srcOffset.y@ /must/ be @0@ and---     @extent.height@ /must/ be @1@------ -   #VUID-VkResolveImageInfo2KHR-srcOffset-00272# For each element of---     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @srcSubresource@ of @srcImage@------ -   #VUID-VkResolveImageInfo2KHR-srcImage-00273# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-VkResolveImageInfo2KHR-dstOffset-00274# For each element of---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkResolveImageInfo2KHR-dstOffset-00275# For each element of---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkResolveImageInfo2KHR-dstImage-00276# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @dstOffset.y@ /must/ be @0@ and---     @extent.height@ /must/ be @1@------ -   #VUID-VkResolveImageInfo2KHR-dstOffset-00277# For each element of---     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @dstSubresource@ of @dstImage@------ -   #VUID-VkResolveImageInfo2KHR-dstImage-00278# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ == Valid Usage (Implicit)------ -   #VUID-VkResolveImageInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'------ -   #VUID-VkResolveImageInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkResolveImageInfo2KHR-srcImage-parameter# @srcImage@ /must/---     be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkResolveImageInfo2KHR-srcImageLayout-parameter#---     @srcImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-VkResolveImageInfo2KHR-dstImage-parameter# @dstImage@ /must/---     be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkResolveImageInfo2KHR-dstImageLayout-parameter#---     @dstImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-VkResolveImageInfo2KHR-pRegions-parameter# @pRegions@ /must/---     be a valid pointer to an array of @regionCount@ valid---     'ImageResolve2KHR' structures------ -   #VUID-VkResolveImageInfo2KHR-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-VkResolveImageInfo2KHR-commonparent# Both of @dstImage@, and---     @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdResolveImage2KHR'-data ResolveImageInfo2KHR = ResolveImageInfo2KHR-  { -- | @srcImage@ is the source image.-    srcImage :: Image-  , -- | @srcImageLayout@ is the layout of the source image subresources for the-    -- resolve.-    srcImageLayout :: ImageLayout-  , -- | @dstImage@ is the destination image.-    dstImage :: Image-  , -- | @dstImageLayout@ is the layout of the destination image subresources for-    -- the resolve.-    dstImageLayout :: ImageLayout-  , -- | @pRegions@ is a pointer to an array of 'ImageResolve2KHR' structures-    -- specifying the regions to resolve.-    regions :: Vector ImageResolve2KHR-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ResolveImageInfo2KHR)-#endif-deriving instance Show ResolveImageInfo2KHR--instance ToCStruct ResolveImageInfo2KHR where-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ResolveImageInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)-    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)-    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytes @ImageResolve2KHR ((Data.Vector.length (regions)) * 88)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageResolve2KHR) (e)) (regions)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR))) (pPRegions')-    lift $ f-  cStructSize = 56-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)-    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)-    f--instance FromCStruct ResolveImageInfo2KHR where-  peekCStruct p = do-    srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))-    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))-    dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))-    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))-    regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))-    pRegions <- peek @(Ptr ImageResolve2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR)))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageResolve2KHR ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageResolve2KHR)))-    pure $ ResolveImageInfo2KHR-             srcImage srcImageLayout dstImage dstImageLayout pRegions'--instance Zero ResolveImageInfo2KHR where-  zero = ResolveImageInfo2KHR-           zero-           zero-           zero-           zero-           mempty+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+--     -   Jeff Leger+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A<<Here describe the issue or question you have about the VK_KHR_copy_commands2 extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-07-06+--+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+--+-- [__Interactions and External Dependencies__]+--+--     -   None+--+-- [__Contributors__]+--+--     -   Jeff Leger, Qualcomm+--+--     -   Tobias Hector, AMD+--+--     -   Jan-Harald Fredriksen, ARM+--+--     -   Tom Olson, ARM+--+-- == Description+--+-- This extension provides extensible versions of the Vulkan buffer and+-- image copy commands. The new commands are functionally identical to the+-- core commands, except that their copy parameters are specified using+-- extensible structures that can be used to pass extension-specific+-- information.+--+-- The following extensible copy commands are introduced with this+-- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR',+-- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',+-- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an+-- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.+-- Lower level structures describing each region to be copied are also+-- extended with @sType@\/@pNext@ members.+--+-- == New Commands+--+-- -   'cmdBlitImage2KHR'+--+-- -   'cmdCopyBuffer2KHR'+--+-- -   'cmdCopyBufferToImage2KHR'+--+-- -   'cmdCopyImage2KHR'+--+-- -   'cmdCopyImageToBuffer2KHR'+--+-- -   'cmdResolveImage2KHR'+--+-- == New Structures+--+-- -   'BlitImageInfo2KHR'+--+-- -   'BufferCopy2KHR'+--+-- -   'BufferImageCopy2KHR'+--+-- -   'CopyBufferInfo2KHR'+--+-- -   'CopyBufferToImageInfo2KHR'+--+-- -   'CopyImageInfo2KHR'+--+-- -   'CopyImageToBufferInfo2KHR'+--+-- -   'ImageBlit2KHR'+--+-- -   'ImageCopy2KHR'+--+-- -   'ImageResolve2KHR'+--+-- -   'ResolveImageInfo2KHR'+--+-- == New Enum Constants+--+-- -   'KHR_COPY_COMMANDS_2_EXTENSION_NAME'+--+-- -   'KHR_COPY_COMMANDS_2_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'+--+--     -   'STRUCTURE_TYPE_BUFFER_COPY_2_KHR'+--+--     -   'STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'+--+--     -   'STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'+--+--     -   'STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'+--+--     -   'STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'+--+--     -   'STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'+--+--     -   'STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'+--+--     -   'STRUCTURE_TYPE_IMAGE_COPY_2_KHR'+--+--     -   'STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'+--+--     -   'STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'+--+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- == Version History+--+-- -   Revision 1, 2020-07-06 (Jeff Leger)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',+-- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',+-- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',+-- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',+-- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',+-- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_copy_commands2 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_copy_commands2  ( pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR+                                                , pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR+                                                , pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR+                                                , pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR+                                                , pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR+                                                , pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR+                                                , pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR+                                                , pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR+                                                , pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR+                                                , pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR+                                                , pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR+                                                , cmdCopyBuffer2KHR+                                                , cmdCopyImage2KHR+                                                , cmdBlitImage2KHR+                                                , cmdCopyBufferToImage2KHR+                                                , cmdCopyImageToBuffer2KHR+                                                , cmdResolveImage2KHR+                                                , BufferCopy2KHR+                                                , ImageCopy2KHR+                                                , ImageBlit2KHR+                                                , BufferImageCopy2KHR+                                                , ImageResolve2KHR+                                                , CopyBufferInfo2KHR+                                                , CopyImageInfo2KHR+                                                , BlitImageInfo2KHR+                                                , CopyBufferToImageInfo2KHR+                                                , CopyImageToBufferInfo2KHR+                                                , ResolveImageInfo2KHR+                                                , KHR_COPY_COMMANDS_2_SPEC_VERSION+                                                , pattern KHR_COPY_COMMANDS_2_SPEC_VERSION+                                                , KHR_COPY_COMMANDS_2_EXTENSION_NAME+                                                , pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME+                                                ) where++import Data.String (IsString)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdBlitImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyBuffer2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyBufferToImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyImageToBuffer2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdResolveImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferCopy2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferImageCopy2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferToImageInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageResolve2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = STRUCTURE_TYPE_COPY_BUFFER_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_COPY_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_BLIT_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR = STRUCTURE_TYPE_BUFFER_COPY_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR = STRUCTURE_TYPE_IMAGE_COPY_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = STRUCTURE_TYPE_IMAGE_BLIT_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = STRUCTURE_TYPE_IMAGE_RESOLVE_2+++-- No documentation found for TopLevel "vkCmdCopyBuffer2KHR"+cmdCopyBuffer2KHR = cmdCopyBuffer2+++-- No documentation found for TopLevel "vkCmdCopyImage2KHR"+cmdCopyImage2KHR = cmdCopyImage2+++-- No documentation found for TopLevel "vkCmdBlitImage2KHR"+cmdBlitImage2KHR = cmdBlitImage2+++-- No documentation found for TopLevel "vkCmdCopyBufferToImage2KHR"+cmdCopyBufferToImage2KHR = cmdCopyBufferToImage2+++-- No documentation found for TopLevel "vkCmdCopyImageToBuffer2KHR"+cmdCopyImageToBuffer2KHR = cmdCopyImageToBuffer2+++-- No documentation found for TopLevel "vkCmdResolveImage2KHR"+cmdResolveImage2KHR = cmdResolveImage2+++-- No documentation found for TopLevel "VkBufferCopy2KHR"+type BufferCopy2KHR = BufferCopy2+++-- No documentation found for TopLevel "VkImageCopy2KHR"+type ImageCopy2KHR = ImageCopy2+++-- No documentation found for TopLevel "VkImageBlit2KHR"+type ImageBlit2KHR = ImageBlit2+++-- No documentation found for TopLevel "VkBufferImageCopy2KHR"+type BufferImageCopy2KHR = BufferImageCopy2+++-- No documentation found for TopLevel "VkImageResolve2KHR"+type ImageResolve2KHR = ImageResolve2+++-- No documentation found for TopLevel "VkCopyBufferInfo2KHR"+type CopyBufferInfo2KHR = CopyBufferInfo2+++-- No documentation found for TopLevel "VkCopyImageInfo2KHR"+type CopyImageInfo2KHR = CopyImageInfo2+++-- No documentation found for TopLevel "VkBlitImageInfo2KHR"+type BlitImageInfo2KHR = BlitImageInfo2+++-- No documentation found for TopLevel "VkCopyBufferToImageInfo2KHR"+type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2+++-- No documentation found for TopLevel "VkCopyImageToBufferInfo2KHR"+type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2+++-- No documentation found for TopLevel "VkResolveImageInfo2KHR"+type ResolveImageInfo2KHR = ResolveImageInfo2   type KHR_COPY_COMMANDS_2_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot
@@ -1,262 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_copy_commands2 - device extension------ == VK_KHR_copy_commands2------ [__Name String__]---     @VK_KHR_copy_commands2@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     338------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------ [__Contact__]------     -   Jeff Leger---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A<<Here describe the issue or question you have about the VK_KHR_copy_commands2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-07-06------ [__Interactions and External Dependencies__]------     -   None------ [__Contributors__]------     -   Jeff Leger, Qualcomm------     -   Tobias Hector, AMD------     -   Jan-Harald Fredriksen, ARM------     -   Tom Olson, ARM------ == Description------ This extension provides extensible versions of the Vulkan buffer and--- image copy commands. The new commands are functionally identical to the--- core commands, except that their copy parameters are specified using--- extensible structures that can be used to pass extension-specific--- information.------ The following extensible copy commands are introduced with this--- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an--- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.--- Lower level structures describing each region to be copied are also--- extended with @sType@\/@pNext@ members.------ == New Commands------ -   'cmdBlitImage2KHR'------ -   'cmdCopyBuffer2KHR'------ -   'cmdCopyBufferToImage2KHR'------ -   'cmdCopyImage2KHR'------ -   'cmdCopyImageToBuffer2KHR'------ -   'cmdResolveImage2KHR'------ == New Structures------ -   'BlitImageInfo2KHR'------ -   'BufferCopy2KHR'------ -   'BufferImageCopy2KHR'------ -   'CopyBufferInfo2KHR'------ -   'CopyBufferToImageInfo2KHR'------ -   'CopyImageInfo2KHR'------ -   'CopyImageToBufferInfo2KHR'------ -   'ImageBlit2KHR'------ -   'ImageCopy2KHR'------ -   'ImageResolve2KHR'------ -   'ResolveImageInfo2KHR'------ == New Enum Constants------ -   'KHR_COPY_COMMANDS_2_EXTENSION_NAME'------ -   'KHR_COPY_COMMANDS_2_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'------ == Version History------ -   Revision 1, 2020-07-06 (Jeff Leger)------     -   Internal revisions------ == See Also------ 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',--- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',--- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',--- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',--- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_copy_commands2  ( BlitImageInfo2KHR-                                                , BufferCopy2KHR-                                                , BufferImageCopy2KHR-                                                , CopyBufferInfo2KHR-                                                , CopyBufferToImageInfo2KHR-                                                , CopyImageInfo2KHR-                                                , CopyImageToBufferInfo2KHR-                                                , ImageBlit2KHR-                                                , ImageCopy2KHR-                                                , ImageResolve2KHR-                                                , ResolveImageInfo2KHR-                                                ) 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 BlitImageInfo2KHR--instance ToCStruct BlitImageInfo2KHR-instance Show BlitImageInfo2KHR--instance FromCStruct BlitImageInfo2KHR---data BufferCopy2KHR--instance ToCStruct BufferCopy2KHR-instance Show BufferCopy2KHR--instance FromCStruct BufferCopy2KHR---type role BufferImageCopy2KHR nominal-data BufferImageCopy2KHR (es :: [Type])--instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es)-instance Show (Chain es) => Show (BufferImageCopy2KHR es)--instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es)---data CopyBufferInfo2KHR--instance ToCStruct CopyBufferInfo2KHR-instance Show CopyBufferInfo2KHR--instance FromCStruct CopyBufferInfo2KHR---data CopyBufferToImageInfo2KHR--instance ToCStruct CopyBufferToImageInfo2KHR-instance Show CopyBufferToImageInfo2KHR--instance FromCStruct CopyBufferToImageInfo2KHR---data CopyImageInfo2KHR--instance ToCStruct CopyImageInfo2KHR-instance Show CopyImageInfo2KHR--instance FromCStruct CopyImageInfo2KHR---data CopyImageToBufferInfo2KHR--instance ToCStruct CopyImageToBufferInfo2KHR-instance Show CopyImageToBufferInfo2KHR--instance FromCStruct CopyImageToBufferInfo2KHR---type role ImageBlit2KHR nominal-data ImageBlit2KHR (es :: [Type])--instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es)-instance Show (Chain es) => Show (ImageBlit2KHR es)--instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es)---data ImageCopy2KHR--instance ToCStruct ImageCopy2KHR-instance Show ImageCopy2KHR--instance FromCStruct ImageCopy2KHR---data ImageResolve2KHR--instance ToCStruct ImageResolve2KHR-instance Show ImageResolve2KHR--instance FromCStruct ImageResolve2KHR---data ResolveImageInfo2KHR--instance ToCStruct ResolveImageInfo2KHR-instance Show ResolveImageInfo2KHR--instance FromCStruct ResolveImageInfo2KHR-
src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs view
@@ -159,7 +159,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_create_renderpass2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs view
@@ -211,7 +211,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dedicated_allocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -264,7 +264,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operations Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_deferred_host_operations Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -365,7 +365,7 @@                            => -- | @device@ is the device which owns @operation@.                               Device                            -> -- | @pAllocator@ controls host memory allocation as described in the-                              -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                              -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                               -- chapter.                               ("allocator" ::: Maybe AllocationCallbacks)                            -> io (DeferredOperationKHR)@@ -456,7 +456,7 @@                             -> -- | @operation@ is the completed operation to be destroyed.                                DeferredOperationKHR                             -> -- | @pAllocator@ controls host memory allocation as described in the-                               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                -- chapter.                                ("allocator" ::: Maybe AllocationCallbacks)                             -> io ()
src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs view
@@ -150,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs view
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_descriptor_update_template Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_device_group.hs view
@@ -149,7 +149,7 @@ --     -   'MemoryAllocateFlagsInfoKHR' -- -- -   Extending 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- --     -   'DeviceGroupRenderPassBeginInfoKHR' --@@ -317,11 +317,11 @@ -- -- == New Built-in Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-deviceindex DeviceIndex>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-deviceindex DeviceIndex> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup> -- -- == Version History --@@ -358,7 +358,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_device_group Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_device_group_creation.hs view
@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group_creation Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_device_group_creation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -507,7 +507,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1047,7 +1047,7 @@                      -> -- | @pAllocator@ is the allocator used for host memory allocated for the                         -- display mode object when there is no more specific allocator available                         -- (see-                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                         ("allocator" ::: Maybe AllocationCallbacks)                      -> io (DisplayModeKHR) createDisplayModeKHR physicalDevice display createInfo allocator = liftIO . evalContT $ do@@ -1194,7 +1194,7 @@                                 DisplaySurfaceCreateInfoKHR                              -> -- | @pAllocator@ is the allocator used for host memory allocated for the                                 -- surface object when there is no more specific allocator available (see-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (SurfaceKHR) createDisplayPlaneSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_display.hs-boot view
@@ -507,7 +507,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -393,7 +393,7 @@                           -> -- | @pAllocator@ is the allocator used for host memory allocated for the                              -- swapchain objects when there is no more specific allocator available                              -- (see-                             -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                             -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                              ("allocator" ::: Maybe AllocationCallbacks)                           -> io (("swapchains" ::: Vector SwapchainKHR)) createSharedSwapchainsKHR device createInfos allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot view
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_draw_indirect_count Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_draw_indirect_count Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_driver_properties.hs view
@@ -142,7 +142,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_properties Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_driver_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs view
@@ -23,2301 +23,873 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ ----- [__Contact__]------     -   Tobias Hector---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_dynamic_rendering] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_dynamic_rendering extension>> >------ [__Extension Proposal__]---     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.asciidoc VK_KHR_dynamic_rendering>------ == Other Extension Metadata------ [__Last Modified Date__]---     2021-10-06------ [__Contributors__]------     -   Tobias Hector, AMD------     -   Arseny Kapoulkine, Roblox------     -   François Duranleau, Gameloft------     -   Stuart Smith, AMD------     -   Hai Nguyen, Google------     -   Jean-François Roy, Google------     -   Jeff Leger, Qualcomm------     -   Jan-Harald Fredriksen, Arm------     -   Piers Daniell, Nvidia------     -   James Fitzpatrick, Imagination------     -   Piotr Byszewski, Mobica------     -   Jesse Hall, Google------     -   Mike Blumenkrantz, Valve------ == Description------ This extension allows applications to create single-pass render pass--- instances without needing to create render pass objects or framebuffers.--- Dynamic render passes can also span across multiple primary command--- buffers, rather than relying on secondary command buffers.------ This extension also incorporates--- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'--- from <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>,--- enabling applications to avoid unnecessary synchronization when an--- attachment is not written during a render pass.------ == New Commands------ -   'cmdBeginRenderingKHR'------ -   'cmdEndRenderingKHR'------ == New Structures------ -   'RenderingAttachmentInfoKHR'------ -   'RenderingInfoKHR'------ -   Extending---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':------     -   'CommandBufferInheritanceRenderingInfoKHR'------ -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':------     -   'PipelineRenderingCreateInfoKHR'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceDynamicRenderingFeaturesKHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>--- is supported:------ -   Extending---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':------     -   'AttachmentSampleCountInfoAMD'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>--- is supported:------ -   Extending 'RenderingInfoKHR':------     -   'RenderingFragmentDensityMapAttachmentInfoEXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>--- is supported:------ -   Extending 'RenderingInfoKHR':------     -   'RenderingFragmentShadingRateAttachmentInfoKHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>--- is supported:------ -   Extending---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':------     -   'AttachmentSampleCountInfoNV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>--- is supported:------ -   Extending---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',---     'RenderingInfoKHR':------     -   'MultiviewPerViewAttributesInfoNVX'------ == New Enums------ -   'RenderingFlagBitsKHR'------ == New Bitmasks------ -   'RenderingFlagsKHR'------ == New Enum Constants------ -   'KHR_DYNAMIC_RENDERING_EXTENSION_NAME'------ -   'KHR_DYNAMIC_RENDERING_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':------     -   'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>--- is supported:------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>--- is supported:------ -   Extending---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':------     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>--- is supported:------ -   Extending---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':------     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>--- is supported:------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>--- is supported:------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'------ == Version History------ -   Revision 1, 2021-10-06 (Tobias Hector)------     -   Initial revision------ == See Also------ 'CommandBufferInheritanceRenderingInfoKHR',--- 'PhysicalDeviceDynamicRenderingFeaturesKHR',--- 'PipelineRenderingCreateInfoKHR', 'RenderingAttachmentInfoKHR',--- 'RenderingFlagBitsKHR', 'RenderingFlagsKHR', 'RenderingInfoKHR',--- 'cmdBeginRenderingKHR', 'cmdEndRenderingKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_dynamic_rendering  ( cmdBeginRenderingKHR-                                                   , cmdUseRenderingKHR-                                                   , cmdEndRenderingKHR-                                                   , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR-                                                   , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT-                                                   , pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV-                                                   , PipelineRenderingCreateInfoKHR(..)-                                                   , RenderingInfoKHR(..)-                                                   , RenderingAttachmentInfoKHR(..)-                                                   , RenderingFragmentShadingRateAttachmentInfoKHR(..)-                                                   , RenderingFragmentDensityMapAttachmentInfoEXT(..)-                                                   , PhysicalDeviceDynamicRenderingFeaturesKHR(..)-                                                   , CommandBufferInheritanceRenderingInfoKHR(..)-                                                   , AttachmentSampleCountInfoAMD(..)-                                                   , MultiviewPerViewAttributesInfoNVX(..)-                                                   , RenderingFlagsKHR-                                                   , RenderingFlagBitsKHR( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR-                                                                         , RENDERING_SUSPENDING_BIT_KHR-                                                                         , RENDERING_RESUMING_BIT_KHR-                                                                         , ..-                                                                         )-                                                   , AttachmentSampleCountInfoNV-                                                   , KHR_DYNAMIC_RENDERING_SPEC_VERSION-                                                   , pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION-                                                   , KHR_DYNAMIC_RENDERING_EXTENSION_NAME-                                                   , pattern KHR_DYNAMIC_RENDERING_EXTENSION_NAME-                                                   ) where--import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Data.Typeable (eqT)-import Foreign.Marshal.Alloc (allocaBytes)-import GHC.IO (throwIO)-import GHC.Ptr (castPtr)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showString)-import Numeric (showHex)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Data.Vector (generateM)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero)-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.Bits (Bits)-import Data.Bits (FiniteBits)-import Data.String (IsString)-import Data.Type.Equality ((:~:)(Refl))-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.CStruct.Extends (forgetExtensions)-import Vulkan.Core10.Enums.AttachmentLoadOp (AttachmentLoadOp)-import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.CStruct.Extends (Chain)-import Vulkan.Core10.CommandBufferBuilding (ClearValue)-import Vulkan.Core10.Handles (CommandBuffer)-import Vulkan.Core10.Handles (CommandBuffer(..))-import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))-import Vulkan.Core10.Handles (CommandBuffer_T)-import Vulkan.Dynamic (DeviceCmds(pVkCmdBeginRenderingKHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdEndRenderingKHR))-import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo)-import Vulkan.CStruct.Extends (Extends)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.CStruct.Extends (Extensible(..))-import Vulkan.Core10.FundamentalTypes (Extent2D)-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.Enums.Format (Format)-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import Vulkan.Core10.Handles (ImageView)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (PokeChain(..))-import Vulkan.Core10.FundamentalTypes (Rect2D)-import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits)-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT))-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO_KHR))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBeginRenderingKHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfoKHR) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfoKHR) -> IO ()---- | vkCmdBeginRenderingKHR - Begin a dynamic render pass instance------ = Description------ After beginning a render pass instance, the command buffer is ready to--- record--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing draw commands>.------ If @pRenderingInfo->flags@ includes 'RENDERING_RESUMING_BIT_KHR' then--- this render pass is resumed from a render pass instance that has been--- suspended earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ == Valid Usage------ -   #VUID-vkCmdBeginRenderingKHR-dynamicRendering-06446# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>---     feature /must/ be enabled------ -   #VUID-vkCmdBeginRenderingKHR-commandBuffer-06068# If @commandBuffer@---     is a secondary command buffer, @pRenderingInfo->flags@ /must/ not---     include 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBeginRenderingKHR-pRenderingInfo-parameter#---     @pRenderingInfo@ /must/ be a valid pointer to a valid---     'RenderingInfoKHR' structure------ -   #VUID-vkCmdBeginRenderingKHR-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-vkCmdBeginRenderingKHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginRenderingKHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderingInfoKHR'-cmdBeginRenderingKHR :: forall a io-                      . (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io)-                     => -- | @commandBuffer@ is the command buffer in which to record the command.-                        CommandBuffer-                     -> -- | @pRenderingInfo@ is a pointer to a 'RenderingInfoKHR' structure-                        -- specifying details of the render pass instance to begin.-                        (RenderingInfoKHR a)-                     -> io ()-cmdBeginRenderingKHR commandBuffer renderingInfo = liftIO . evalContT $ do-  let vkCmdBeginRenderingKHRPtr = pVkCmdBeginRenderingKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBeginRenderingKHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderingKHR is null" Nothing Nothing-  let vkCmdBeginRenderingKHR' = mkVkCmdBeginRenderingKHR vkCmdBeginRenderingKHRPtr-  pRenderingInfo <- ContT $ withCStruct (renderingInfo)-  lift $ traceAroundEvent "vkCmdBeginRenderingKHR" (vkCmdBeginRenderingKHR' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderingInfo))-  pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginRenderingKHR' and 'cmdEndRenderingKHR'------ Note that 'cmdEndRenderingKHR' is *not* called if an exception is thrown--- by the inner action.-cmdUseRenderingKHR :: forall a io r . (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfoKHR a -> io r -> io r-cmdUseRenderingKHR commandBuffer pRenderingInfo a =-  (cmdBeginRenderingKHR commandBuffer pRenderingInfo) *> a <* (cmdEndRenderingKHR commandBuffer)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdEndRenderingKHR-  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()---- | vkCmdEndRenderingKHR - End a dynamic render pass instance------ = Description------ If the value of @pRenderingInfo->flags@ used to begin this render pass--- instance included 'RENDERING_SUSPENDING_BIT_KHR', then this render pass--- is suspended and will be resumed later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ == Valid Usage------ -   #VUID-vkCmdEndRenderingKHR-None-06161# The current render pass---     instance /must/ have been begun with 'cmdBeginRenderingKHR'------ -   #VUID-vkCmdEndRenderingKHR-commandBuffer-06162# The current render---     pass instance /must/ have been begun in @commandBuffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdEndRenderingKHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdEndRenderingKHR-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-vkCmdEndRenderingKHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdEndRenderingKHR-renderpass# This command /must/ only be---     called inside of a render pass instance------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdEndRenderingKHR :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer in which to record the command.-                      CommandBuffer-                   -> io ()-cmdEndRenderingKHR commandBuffer = liftIO $ do-  let vkCmdEndRenderingKHRPtr = pVkCmdEndRenderingKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdEndRenderingKHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderingKHR is null" Nothing Nothing-  let vkCmdEndRenderingKHR' = mkVkCmdEndRenderingKHR vkCmdEndRenderingKHRPtr-  traceAroundEvent "vkCmdEndRenderingKHR" (vkCmdEndRenderingKHR' (commandBufferHandle (commandBuffer)))-  pure $ ()----- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"-pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"-pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT----- No documentation found for TopLevel "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV"-pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD----- | VkPipelineRenderingCreateInfoKHR - Structure specifying attachment--- formats------ = Description------ When a pipeline is created without a 'Vulkan.Core10.Handles.RenderPass',--- if this structure is present in the @pNext@ chain of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it specifies the--- view mask and format of attachments used for rendering. If this--- structure is not specified, and the pipeline does not include a--- 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and--- @colorAttachmentCount@ are @0@, and @depthAttachmentFormat@ and--- @stencilAttachmentFormat@ are--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. If a graphics pipeline is--- created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters of--- this structure are ignored.------ If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of--- @pColorAttachmentFormats@ is--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the--- corresponding attachment is unused within the render pass. Valid formats--- indicate that an attachment /can/ be used - but it is still valid to set--- the attachment to @NULL@ when beginning rendering.------ == Valid Usage------ -   #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06495#---     If any element of @pColorAttachmentFormats@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that includes either---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'---     or---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ -   #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-06065#---     If @depthAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that include---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkPipelineRenderingCreateInfoKHR-stencilAttachmentFormat-06164#---     If @stencilAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that include---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-06165#---     If @depthAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and---     @stencilAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',---     @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@------ -   #VUID-VkPipelineRenderingCreateInfoKHR-multiview-06066# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>---     feature is not enabled, @viewMask@ /must/ be @0@------ -   #VUID-VkPipelineRenderingCreateInfoKHR-viewMask-06067# The index of---     the most significant bit in @viewMask@ /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ == Valid Usage (Implicit)------ -   #VUID-VkPipelineRenderingCreateInfoKHR-sType-sType# @sType@ /must/---     be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'------ -   #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-parameter#---     If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@---     /must/ be a valid pointer to an array of @colorAttachmentCount@---     valid 'Vulkan.Core10.Enums.Format.Format' values------ -   #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-parameter#---     @depthAttachmentFormat@ /must/ be a valid---     'Vulkan.Core10.Enums.Format.Format' value------ -   #VUID-VkPipelineRenderingCreateInfoKHR-stencilAttachmentFormat-parameter#---     @stencilAttachmentFormat@ /must/ be a valid---     'Vulkan.Core10.Enums.Format.Format' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.Format.Format',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfoKHR-  { -- | @viewMask@ is the viewMask used for rendering.-    viewMask :: Word32-  , -- | @pColorAttachmentFormats@ is a pointer to an array of-    -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color-    -- attachments used in this pipeline.-    colorAttachmentFormats :: Vector Format-  , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value-    -- defining the format of the depth attachment used in this pipeline.-    depthAttachmentFormat :: Format-  , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value-    -- defining the format of the stencil attachment used in this pipeline.-    stencilAttachmentFormat :: Format-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineRenderingCreateInfoKHR)-#endif-deriving instance Show PipelineRenderingCreateInfoKHR--instance ToCStruct PipelineRenderingCreateInfoKHR where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PipelineRenderingCreateInfoKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (viewMask)-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))-    pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')-    lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (depthAttachmentFormat)-    lift $ poke ((p `plusPtr` 36 :: Ptr Format)) (stencilAttachmentFormat)-    lift $ f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Format)) (zero)-    poke ((p `plusPtr` 36 :: Ptr Format)) (zero)-    f--instance FromCStruct PipelineRenderingCreateInfoKHR where-  peekCStruct p = do-    viewMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 24 :: Ptr (Ptr Format)))-    pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))-    depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))-    stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format))-    pure $ PipelineRenderingCreateInfoKHR-             viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat--instance Zero PipelineRenderingCreateInfoKHR where-  zero = PipelineRenderingCreateInfoKHR-           zero-           mempty-           zero-           zero----- | VkRenderingInfoKHR - Structure specifying render pass instance begin--- info------ = Description------ If @viewMask@ is not @0@, multiview is enabled.------ If there is an instance of--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- included in the @pNext@ chain and its @deviceCount@ member is not @0@,--- then @renderArea@ is ignored, and the render area is defined per-device--- by that structure.------ Each element of the @pColorAttachments@ array corresponds to an output--- location in the shader, i.e. if the shader declares an output variable--- decorated with a @Location@ value of __X__, then it uses the attachment--- provided in @pColorAttachments@[__X__]. If the @imageView@ member of any--- element of @pColorAttachments@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', writes to the corresponding--- location by a fragment are discarded.------ == Valid Usage------ -   #VUID-VkRenderingInfoKHR-viewMask-06069# If @viewMask@ is @0@,---     @layerCount@ /must/ not be @0@------ -   #VUID-VkRenderingInfoKHR-imageView-06070# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>---     nor the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>---     extensions are enabled, @imageView@ members of @pDepthAttachment@,---     @pStencilAttachment@, and elements of @pColorAttachments@ that are---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been---     created with the same @sampleCount@------ -   #VUID-VkRenderingInfoKHR-pNext-06077# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.x@ /must/ be greater than or equal to 0------ -   #VUID-VkRenderingInfoKHR-pNext-06078# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.y@ /must/ be greater than or equal to 0------ -   #VUID-VkRenderingInfoKHR-pNext-06079# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0, the width of---     the @imageView@ member of any element of @pColorAttachments@,---     @pDepthAttachment@, or @pStencilAttachment@ that is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or---     equal to @renderArea.offset.x@ + @renderArea.extent.width@------ -   #VUID-VkRenderingInfoKHR-pNext-06080# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0, the height of---     the @imageView@ member of any element of @pColorAttachments@,---     @pDepthAttachment@, or @pStencilAttachment@ that is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or---     equal to @renderArea.offset.y@ + @renderArea.extent.height@------ -   #VUID-VkRenderingInfoKHR-pNext-06083# If the @pNext@ chain contains---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     the width of the @imageView@ member of any element of---     @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@---     that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be---     greater than or equal to the sum of the @offset.x@ and---     @extent.width@ members of each element of @pDeviceRenderAreas@------ -   #VUID-VkRenderingInfoKHR-pNext-06084# If the @pNext@ chain contains---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     the height of the @imageView@ member of any element of---     @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@---     that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be---     greater than or equal to the sum of the @offset.y@ and---     @extent.height@ members of each element of @pDeviceRenderAreas@------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06085# If neither---     @pDepthAttachment@ or @pStencilAttachment@ are @NULL@ and the---     @imageView@ member of either structure is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @imageView@ member of---     each structure /must/ be the same------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06086# If neither---     @pDepthAttachment@ or @pStencilAttachment@ are @NULL@, and the---     @resolveMode@ member of each is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the---     @resolveImageView@ member of each structure /must/ be the same------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06087# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', that @imageView@ /must/---     have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06088# If---     @pDepthAttachment@ is not @NULL@ and @pDepthAttachment->imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @pDepthAttachment->imageView@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkRenderingInfoKHR-pStencilAttachment-06089# If---     @pStencilAttachment@ is not @NULL@ and---     @pStencilAttachment->imageView@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @pStencilAttachment->imageView@ /must/ have been created with a---     stencil usage including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06090# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of---     that element of @pColorAttachments@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06091# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@---     member of that element of @pColorAttachments@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its---     @resolveImageLayout@ member /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06092# If---     @pDepthAttachment@ is not @NULL@ and @pDepthAttachment->imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @pDepthAttachment->layout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06093# If---     @pDepthAttachment@ is not @NULL@, @pDepthAttachment->imageView@ is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and---     @pDepthAttachment->resolveMode@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @pDepthAttachment->resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pStencilAttachment-06094# If---     @pStencilAttachment@ is not @NULL@ and---     @pStencilAttachment->imageView@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @pStencilAttachment->layout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pStencilAttachment-06095# If---     @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and---     @pStencilAttachment->resolveMode@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @pStencilAttachment->resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06096# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of---     that element of @pColorAttachments@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06097# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@---     member of that element of @pColorAttachments@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its---     @resolveImageLayout@ member /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06098# If---     @pDepthAttachment@ is not @NULL@, @pDepthAttachment->imageView@ is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and---     @pDepthAttachment->resolveMode@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @pDepthAttachment->resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pStencilAttachment-06099# If---     @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and---     @pStencilAttachment->resolveMode@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @pStencilAttachment->resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06100# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of---     that element of @pColorAttachments@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06101# If---     @colorAttachmentCount@ is not @0@ and the @imageView@ member of an---     element of @pColorAttachments@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@---     member of that element of @pColorAttachments@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its---     @resolveImageLayout@ member /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06102# If---     @pDepthAttachment@ is not @NULL@ and @pDepthAttachment->imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @pDepthAttachment->resolveMode@ /must/ be one of the bits set in---     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedDepthResolveModes@------ -   #VUID-VkRenderingInfoKHR-pStencilAttachment-06103# If---     @pStencilAttachment@ is not @NULL@ and---     @pStencilAttachment->imageView@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @pStencilAttachment->resolveMode@ /must/ be one of the bits set in---     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedStencilResolveModes@------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06104# If---     @pDepthAttachment@ or @pStencilAttachment@ are both not @NULL@,---     @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@---     are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and---     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@---     is 'Vulkan.Core10.FundamentalTypes.FALSE', the @resolveMode@ of both---     structures /must/ be the same value------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-06105# If---     @pDepthAttachment@ or @pStencilAttachment@ are both not @NULL@,---     @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@---     are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@---     is 'Vulkan.Core10.FundamentalTypes.FALSE', and the @resolveMode@ of---     neither structure is---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the---     @resolveMode@ of both structures /must/ be the same value------ -   #VUID-VkRenderingInfoKHR-colorAttachmentCount-06106#---     @colorAttachmentCount@ /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxColorAttachments@------ -   #VUID-VkRenderingInfoKHR-imageView-06107# If the @imageView@ member---     of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>---     is not enabled, valid @imageView@ and @resolveImageView@ members of---     @pDepthAttachment@, @pStencilAttachment@, and each element of---     @pColorAttachments@ /must/ be a 'Vulkan.Core10.Handles.ImageView'---     created with---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-VkRenderingInfoKHR-imageView-06108# If the @imageView@ member---     of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,---     @imageView@ /must/ have a @layerCount@ greater than or equal to the---     index of the most significant bit in @viewMask@------ -   #VUID-VkRenderingInfoKHR-imageView-06109# If the @imageView@ member---     of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,---     @imageView@ /must/ have a @layerCount@ equal to @1@------ -   #VUID-VkRenderingInfoKHR-pNext-06112# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0 and the---     @imageView@ member of a---     'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in---     the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @imageView@ /must/ have a width greater than or equal to---     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)------ -   #VUID-VkRenderingInfoKHR-pNext-06113# If the @pNext@ chain contains---     a---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     structure, its @deviceRenderAreaCount@ member is not 0, and the---     @imageView@ member of a---     'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in---     the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @imageView@ /must/ have a width greater than or equal to---     \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)---     for each element of @pDeviceRenderAreas@------ -   #VUID-VkRenderingInfoKHR-pNext-06114# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0 and the---     @imageView@ member of a---     'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in---     the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @imageView@ /must/ have a height greater than or equal to---     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)------ -   #VUID-VkRenderingInfoKHR-pNext-06115# If the @pNext@ chain contains---     a---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     structure, its @deviceRenderAreaCount@ member is not 0, and the---     @imageView@ member of a---     'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in---     the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @imageView@ /must/ have a height greater than or equal to---     \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)---     for each element of @pDeviceRenderAreas@------ -   #VUID-VkRenderingInfoKHR-imageView-06116# If the @imageView@ member---     of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to---     the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,---     @pStencilAttachment@, or any element of @pColorAttachments@------ -   #VUID-VkRenderingInfoKHR-pNext-06119# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0 and the---     @imageView@ member of a---     'RenderingFragmentShadingRateAttachmentInfoKHR' structure included---     in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a---     width greater than or equal to---     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)------ -   #VUID-VkRenderingInfoKHR-pNext-06120# If the @pNext@ chain contains---     a---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     structure, its @deviceRenderAreaCount@ member is not 0, and the---     @imageView@ member of a---     'RenderingFragmentShadingRateAttachmentInfoKHR' structure included---     in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a---     width greater than or equal to---     \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)---     for each element of @pDeviceRenderAreas@------ -   #VUID-VkRenderingInfoKHR-pNext-06121# If the @pNext@ chain does not---     contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0 and the---     @imageView@ member of a---     'RenderingFragmentShadingRateAttachmentInfoKHR' structure included---     in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a---     height greater than or equal to---     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)------ -   #VUID-VkRenderingInfoKHR-pNext-06122# If the @pNext@ chain contains---     a---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     structure, its @deviceRenderAreaCount@ member is not 0, and the---     @imageView@ member of a---     'RenderingFragmentShadingRateAttachmentInfoKHR' structure included---     in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a---     height greater than or equal to---     \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)---     for each element of @pDeviceRenderAreas@------ -   #VUID-VkRenderingInfoKHR-imageView-06123# If the @imageView@ member---     of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,---     @imageView@ /must/ have a @layerCount@ that is either equal to @1@---     or greater than or equal to @layerCount@------ -   #VUID-VkRenderingInfoKHR-imageView-06124# If the @imageView@ member---     of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,---     @imageView@ /must/ have a @layerCount@ that either equal to @1@ or---     greater than or equal to the index of the most significant bit in---     @viewMask@------ -   #VUID-VkRenderingInfoKHR-imageView-06125# If the @imageView@ member---     of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to---     the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,---     @pStencilAttachment@, or any element of @pColorAttachments@------ -   #VUID-VkRenderingInfoKHR-imageView-06126# If the @imageView@ member---     of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure---     included in the @pNext@ chain is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to---     the @imageView@ member of a---     'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in---     the @pNext@ chain------ -   #VUID-VkRenderingInfoKHR-multiview-06127# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>---     feature is not enabled, @viewMask@ /must/ be @0@------ -   #VUID-VkRenderingInfoKHR-viewMask-06128# The index of the most---     significant bit in @viewMask@ /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ == Valid Usage (Implicit)------ -   #VUID-VkRenderingInfoKHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO_KHR'------ -   #VUID-VkRenderingInfoKHR-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.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     'MultiviewPerViewAttributesInfoNVX',---     'RenderingFragmentDensityMapAttachmentInfoEXT', or---     'RenderingFragmentShadingRateAttachmentInfoKHR'------ -   #VUID-VkRenderingInfoKHR-sType-unique# The @sType@ value of each---     struct in the @pNext@ chain /must/ be unique------ -   #VUID-VkRenderingInfoKHR-flags-parameter# @flags@ /must/ be a valid---     combination of 'RenderingFlagBitsKHR' values------ -   #VUID-VkRenderingInfoKHR-pColorAttachments-parameter# If---     @colorAttachmentCount@ is not @0@, @pColorAttachments@ /must/ be a---     valid pointer to an array of @colorAttachmentCount@ valid---     'RenderingAttachmentInfoKHR' structures------ -   #VUID-VkRenderingInfoKHR-pDepthAttachment-parameter# If---     @pDepthAttachment@ is not @NULL@, @pDepthAttachment@ /must/ be a---     valid pointer to a valid 'RenderingAttachmentInfoKHR' structure------ -   #VUID-VkRenderingInfoKHR-pStencilAttachment-parameter# If---     @pStencilAttachment@ is not @NULL@, @pStencilAttachment@ /must/ be a---     valid pointer to a valid 'RenderingAttachmentInfoKHR' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'RenderingAttachmentInfoKHR',--- 'RenderingFlagsKHR', 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdBeginRenderingKHR'-data RenderingInfoKHR (es :: [Type]) = RenderingInfoKHR-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.-    next :: Chain es-  , -- | @flags@ is a bitmask of 'RenderingFlagBitsKHR'.-    flags :: RenderingFlagsKHR-  , -- | @renderArea@ is the render area that is affected by the render pass-    -- instance.-    renderArea :: Rect2D-  , -- | @layerCount@ is the number of layers rendered to in each attachment when-    -- @viewMask@ is @0@.-    layerCount :: Word32-  , -- | @viewMask@ is the view mask indicating the indices of attachment layers-    -- that will be rendered when it is not @0@.-    viewMask :: Word32-  , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@-    -- 'RenderingAttachmentInfoKHR' structures describing any color attachments-    -- used.-    colorAttachments :: Vector RenderingAttachmentInfoKHR-  , -- | @pDepthAttachment@ is a pointer to a 'RenderingAttachmentInfoKHR'-    -- structure describing a depth attachment.-    depthAttachment :: Maybe RenderingAttachmentInfoKHR-  , -- | @pStencilAttachment@ is a pointer to a 'RenderingAttachmentInfoKHR'-    -- structure describing a stencil attachment.-    stencilAttachment :: Maybe RenderingAttachmentInfoKHR-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingInfoKHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (RenderingInfoKHR es)--instance Extensible RenderingInfoKHR where-  extensibleTypeName = "RenderingInfoKHR"-  setNext RenderingInfoKHR{..} next' = RenderingInfoKHR{next = next', ..}-  getNext RenderingInfoKHR{..} = next-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingInfoKHR e => b) -> Maybe b-  extends _ f-    | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f-    | Just Refl <- eqT @e @RenderingFragmentDensityMapAttachmentInfoEXT = Just f-    | Just Refl <- eqT @e @RenderingFragmentShadingRateAttachmentInfoKHR = Just f-    | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f-    | otherwise = Nothing--instance (Extendss RenderingInfoKHR es, PokeChain es) => ToCStruct (RenderingInfoKHR es) where-  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p RenderingInfoKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO_KHR)-    pNext'' <- fmap castPtr . ContT $ withChain (next)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''-    lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlagsKHR)) (flags)-    lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (renderArea)-    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (layerCount)-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (viewMask)-    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachments)) :: Word32))-    pPColorAttachments' <- ContT $ allocaBytes @RenderingAttachmentInfoKHR ((Data.Vector.length (colorAttachments)) * 72)-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPColorAttachments' `plusPtr` (72 * (i)) :: Ptr RenderingAttachmentInfoKHR) (e) . ($ ())) (colorAttachments)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr RenderingAttachmentInfoKHR))) (pPColorAttachments')-    pDepthAttachment'' <- case (depthAttachment) of-      Nothing -> pure nullPtr-      Just j -> ContT $ withCStruct (j)-    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr RenderingAttachmentInfoKHR))) pDepthAttachment''-    pStencilAttachment'' <- case (stencilAttachment) of-      Nothing -> pure nullPtr-      Just j -> ContT $ withCStruct (j)-    lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr RenderingAttachmentInfoKHR))) pStencilAttachment''-    lift $ f-  cStructSize = 72-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO_KHR)-    pNext' <- fmap castPtr . ContT $ withZeroChain @es-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (zero)-    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)-    lift $ f--instance es ~ '[] => Zero (RenderingInfoKHR es) where-  zero = RenderingInfoKHR-           ()-           zero-           zero-           zero-           zero-           mempty-           Nothing-           Nothing----- | VkRenderingAttachmentInfoKHR - Structure specifying attachment--- information------ = Description------ Values in @imageView@ are loaded and stored according to the values of--- @loadOp@ and @storeOp@, within the render area for each device specified--- in 'RenderingInfoKHR'. If @imageView@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', other members of this--- structure are ignored; writes to this attachment will be discarded, and--- no load, store, or resolve operations will be performed.------ If @resolveMode@ is--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then--- @resolveImageView@ is ignored. If @resolveMode@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', values in--- @resolveImageView@ within the render area become undefined once--- rendering begins. At the end of rendering, the color values written to--- each pixel location in @imageView@ will be resolved according to--- @resolveMode@ and stored into the the same location in--- @resolveImageView@.------ Note------ The resolve mode and store operation are independent; it is valid to--- write both resolved and unresolved values, and equally valid to discard--- the unresolved values while writing the resolved ones.------ Store and resolve operations are only performed at the end of a render--- pass instance that does not specify the 'RENDERING_SUSPENDING_BIT_KHR'--- flag.------ Load operations are only performed at the beginning of a render pass--- instance that does not specify the 'RENDERING_RESUMING_BIT_KHR' flag.------ Image contents at the end of a suspended render pass instance remain--- defined for access by a resuming render pass instance.------ == Valid Usage------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06129# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has a---     non-integer color format, @resolveMode@ /must/ be---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_AVERAGE_BIT'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06130# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has an integer---     color format, @resolveMode@ /must/ be---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_SAMPLE_ZERO_BIT'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06132# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @imageView@ /must/ not have a sample count of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06133# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageView@ /must/ have a sample count of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06134# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @imageView@ and @resolveImageView@ /must/ have the same---     'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06135# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not---     be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06136# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06137# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06138# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not---     be---     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06139# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06140# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06141# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06142# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06143# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06144# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06145# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not---     be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-06146# If @imageView@---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is---     not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',---     @resolveImageLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'------ == Valid Usage (Implicit)------ -   #VUID-VkRenderingAttachmentInfoKHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'------ -   #VUID-VkRenderingAttachmentInfoKHR-pNext-pNext# @pNext@ /must/ be---     @NULL@------ -   #VUID-VkRenderingAttachmentInfoKHR-imageView-parameter# If---     @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'---     handle------ -   #VUID-VkRenderingAttachmentInfoKHR-imageLayout-parameter#---     @imageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-VkRenderingAttachmentInfoKHR-resolveMode-parameter# If---     @resolveMode@ is not @0@, @resolveMode@ /must/ be a valid---     'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value------ -   #VUID-VkRenderingAttachmentInfoKHR-resolveImageView-parameter# If---     @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @resolveImageView@ /must/ be a valid---     'Vulkan.Core10.Handles.ImageView' handle------ -   #VUID-VkRenderingAttachmentInfoKHR-resolveImageLayout-parameter#---     @resolveImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-VkRenderingAttachmentInfoKHR-loadOp-parameter# @loadOp@ /must/---     be a valid 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'---     value------ -   #VUID-VkRenderingAttachmentInfoKHR-storeOp-parameter# @storeOp@---     /must/ be a valid---     'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp' value------ -   #VUID-VkRenderingAttachmentInfoKHR-clearValue-parameter#---     @clearValue@ /must/ be a valid---     'Vulkan.Core10.CommandBufferBuilding.ClearValue' union------ -   #VUID-VkRenderingAttachmentInfoKHR-commonparent# Both of---     @imageView@, and @resolveImageView@ 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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp',--- 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp',--- 'Vulkan.Core10.CommandBufferBuilding.ClearValue',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Handles.ImageView', 'RenderingInfoKHR',--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data RenderingAttachmentInfoKHR = RenderingAttachmentInfoKHR-  { -- | @imageView@ is the image view that will be used for rendering.-    imageView :: ImageView-  , -- | @imageLayout@ is the layout that @imageView@ will be in during-    -- rendering.-    imageLayout :: ImageLayout-  , -- | @resolveMode@ is a-    -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value-    -- defining how multisampled data written to @imageView@ will be resolved.-    resolveMode :: ResolveModeFlagBits-  , -- | @resolveImageView@ is an image view used to write resolved multisample-    -- data at the end of rendering.-    resolveImageView :: ImageView-  , -- | @resolveImageLayout@ is the layout that @resolveImageView@ will be in-    -- during rendering.-    resolveImageLayout :: ImageLayout-  , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'-    -- value specifying how the contents of @imageView@ are treated at the-    -- start of the render pass instance.-    loadOp :: AttachmentLoadOp-  , -- | @storeOp@ is a 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'-    -- value specifying how the contents of @imageView@ are treated at the end-    -- of the render pass instance.-    storeOp :: AttachmentStoreOp-  , -- | @clearValue@ is a 'Vulkan.Core10.CommandBufferBuilding.ClearValue'-    -- structure defining values used to clear @imageView@ when @loadOp@ is-    -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'.-    clearValue :: ClearValue-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingAttachmentInfoKHR)-#endif-deriving instance Show RenderingAttachmentInfoKHR--instance ToCStruct RenderingAttachmentInfoKHR where-  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p RenderingAttachmentInfoKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)-    lift $ poke ((p `plusPtr` 28 :: Ptr ResolveModeFlagBits)) (resolveMode)-    lift $ poke ((p `plusPtr` 32 :: Ptr ImageView)) (resolveImageView)-    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (resolveImageLayout)-    lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (loadOp)-    lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (storeOp)-    ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (clearValue) . ($ ())-    lift $ f-  cStructSize = 72-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)-    lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (zero)-    lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (zero)-    ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (zero) . ($ ())-    lift $ f--instance Zero RenderingAttachmentInfoKHR where-  zero = RenderingAttachmentInfoKHR-           zero-           zero-           zero-           zero-           zero-           zero-           zero-           zero----- | VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying--- fragment shading rate attachment information------ = Description------ This structure can be included in the @pNext@ chain of--- 'RenderingInfoKHR' to define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.--- If @imageView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or if this--- structure is not specified, the implementation behaves as if a valid--- shading rate attachment was specified with all texels specifying a--- single pixel per fragment.------ == Valid Usage------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @layout@ /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it---     /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @shadingRateAttachmentTexelSize.width@ /must/ be a power of two---     value------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal---     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @shadingRateAttachmentTexelSize.width@ /must/ be greater than or---     equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @shadingRateAttachmentTexelSize.height@ /must/ be a power of two---     value------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal---     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @shadingRateAttachmentTexelSize.height@ /must/ be greater than or---     equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the---     quotient of @shadingRateAttachmentTexelSize.width@ and---     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal---     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the---     quotient of @shadingRateAttachmentTexelSize.height@ and---     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal---     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>------ == Valid Usage (Implicit)------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType#---     @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'---     handle------ -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter#---     @imageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>,--- 'Vulkan.Core10.FundamentalTypes.Extent2D',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Handles.ImageView',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR-  { -- | @imageView@ is the image view that will be used as a fragment shading-    -- rate attachment.-    imageView :: ImageView-  , -- | @imageLayout@ is the layout that @imageView@ will be in during-    -- rendering.-    imageLayout :: ImageLayout-  , -- | @shadingRateAttachmentTexelSize@ specifies the number of pixels-    -- corresponding to each texel in @imageView@.-    shadingRateAttachmentTexelSize :: Extent2D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)-#endif-deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR--instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p RenderingFragmentShadingRateAttachmentInfoKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)-    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)-    f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)-    f--instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where-  peekCStruct p = do-    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))-    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))-    shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))-    pure $ RenderingFragmentShadingRateAttachmentInfoKHR-             imageView imageLayout shadingRateAttachmentTexelSize--instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where-  zero = RenderingFragmentShadingRateAttachmentInfoKHR-           zero-           zero-           zero----- | VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying--- fragment shading rate attachment information------ = Description------ This structure can be included in the @pNext@ chain of--- 'RenderingInfoKHR' to define a fragment density map. If this structure--- is not included in the @pNext@ chain, @imageView@ is treated as--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.------ == Valid Usage------ -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',---     @layout@ /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it---     /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'------ -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159#---     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it---     /must/ not have been created with---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ == Valid Usage (Implicit)------ -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType#---     @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'------ -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter#---     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'---     handle------ -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter#---     @imageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Handles.ImageView',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT-  { -- | @imageView@ is the image view that will be used as a fragment shading-    -- rate attachment.-    imageView :: ImageView-  , -- | @imageLayout@ is the layout that @imageView@ will be in during-    -- rendering.-    imageLayout :: ImageLayout-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingFragmentDensityMapAttachmentInfoEXT)-#endif-deriving instance Show RenderingFragmentDensityMapAttachmentInfoEXT--instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p RenderingFragmentDensityMapAttachmentInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)-    f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)-    f--instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT where-  peekCStruct p = do-    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))-    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))-    pure $ RenderingFragmentDensityMapAttachmentInfoEXT-             imageView imageLayout--instance Storable RenderingFragmentDensityMapAttachmentInfoEXT where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where-  zero = RenderingFragmentDensityMapAttachmentInfoEXT-           zero-           zero----- | VkPhysicalDeviceDynamicRenderingFeaturesKHR - Structure indicating--- support for dynamic render pass instances------ = Members------ The members of the 'PhysicalDeviceDynamicRenderingFeaturesKHR' structure--- describe the following features:------ = Description------ If the 'PhysicalDeviceDynamicRenderingFeaturesKHR' 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. 'PhysicalDeviceDynamicRenderingFeaturesKHR' /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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeaturesKHR-  { -- | #features-dynamicRendering# @dynamicRendering@ specifies that the-    -- implementation supports dynamic render pass instances using the-    -- 'cmdBeginRenderingKHR' command.-    dynamicRendering :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceDynamicRenderingFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceDynamicRenderingFeaturesKHR--instance ToCStruct PhysicalDeviceDynamicRenderingFeaturesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceDynamicRenderingFeaturesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicRendering))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDeviceDynamicRenderingFeaturesKHR where-  peekCStruct p = do-    dynamicRendering <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceDynamicRenderingFeaturesKHR-             (bool32ToBool dynamicRendering)--instance Storable PhysicalDeviceDynamicRenderingFeaturesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceDynamicRenderingFeaturesKHR where-  zero = PhysicalDeviceDynamicRenderingFeaturesKHR-           zero----- | VkCommandBufferInheritanceRenderingInfoKHR - Structure specifying--- command buffer inheritance info for dynamic render pass instances------ = Description------ If the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes a--- 'CommandBufferInheritanceRenderingInfoKHR' structure, then that--- structure controls parameters of dynamic render pass instances that the--- 'Vulkan.Core10.Handles.CommandBuffer' /can/ be executed within. If--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'--- is not specified in--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,--- parameters of this structure are ignored.------ If @colorAttachmentCount@ is @0@ and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>--- feature is enabled, @rasterizationSamples@ is ignored.------ If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of--- @pColorAttachmentFormats@ is--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the--- corresponding attachment is unused within the render pass.------ == Valid Usage------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-colorAttachmentCount-06004#---     If @colorAttachmentCount@ is not @0@, @rasterizationSamples@ /must/---     be a valid---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-variableMultisampleRate-06005#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>---     feature is not enabled, @rasterizationSamples@ /must/ be a valid---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06006#---     If any element of @pColorAttachmentFormats@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that include---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-depthAttachmentFormat-06007#---     If @depthAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that include---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492#---     When rendering to a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color attachment>,---     if any element of @pColorAttachmentFormats@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that include---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-stencilAttachmentFormat-06199#---     If @stencilAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format---     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>---     that include---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-depthAttachmentFormat-06200#---     If @depthAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and---     @stencilAttachmentFormat@ is not---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',---     @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-multiview-06008# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>---     feature is not enabled, @viewMask@ /must/ be @0@------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-viewMask-06009# The---     index of the most significant bit in @viewMask@ /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ == Valid Usage (Implicit)------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-sType-sType#---     @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-flags-parameter#---     @flags@ /must/ be a valid combination of 'RenderingFlagBitsKHR'---     values------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-parameter#---     If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@---     /must/ be a valid pointer to an array of @colorAttachmentCount@---     valid 'Vulkan.Core10.Enums.Format.Format' values------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-depthAttachmentFormat-parameter#---     @depthAttachmentFormat@ /must/ be a valid---     'Vulkan.Core10.Enums.Format.Format' value------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-stencilAttachmentFormat-parameter#---     @stencilAttachmentFormat@ /must/ be a valid---     'Vulkan.Core10.Enums.Format.Format' value------ -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-rasterizationSamples-parameter#---     If @rasterizationSamples@ is not @0@, @rasterizationSamples@ /must/---     be a valid---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.Format.Format', 'RenderingFlagsKHR',--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfoKHR-  { -- | @flags@ is a bitmask of 'RenderingFlagBitsKHR' used by the render pass-    -- instance.-    flags :: RenderingFlagsKHR-  , -- | @viewMask@ is the view mask used for rendering.-    viewMask :: Word32-  , -- | @pColorAttachmentFormats@ is a pointer to an array of-    -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color-    -- attachments.-    colorAttachmentFormats :: Vector Format-  , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value-    -- defining the format of the depth attachment.-    depthAttachmentFormat :: Format-  , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value-    -- defining the format of the stencil attachment.-    stencilAttachmentFormat :: Format-  , -- | @rasterizationSamples@ is a-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying-    -- the number of samples used in rasterization.-    rasterizationSamples :: SampleCountFlagBits-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CommandBufferInheritanceRenderingInfoKHR)-#endif-deriving instance Show CommandBufferInheritanceRenderingInfoKHR--instance ToCStruct CommandBufferInheritanceRenderingInfoKHR where-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CommandBufferInheritanceRenderingInfoKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlagsKHR)) (flags)-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewMask)-    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))-    pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')-    lift $ poke ((p `plusPtr` 40 :: Ptr Format)) (depthAttachmentFormat)-    lift $ poke ((p `plusPtr` 44 :: Ptr Format)) (stencilAttachmentFormat)-    lift $ poke ((p `plusPtr` 48 :: Ptr SampleCountFlagBits)) (rasterizationSamples)-    lift $ f-  cStructSize = 56-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 40 :: Ptr Format)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Format)) (zero)-    f--instance FromCStruct CommandBufferInheritanceRenderingInfoKHR where-  peekCStruct p = do-    flags <- peek @RenderingFlagsKHR ((p `plusPtr` 16 :: Ptr RenderingFlagsKHR))-    viewMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))-    pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 32 :: Ptr (Ptr Format)))-    pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))-    depthAttachmentFormat <- peek @Format ((p `plusPtr` 40 :: Ptr Format))-    stencilAttachmentFormat <- peek @Format ((p `plusPtr` 44 :: Ptr Format))-    rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 48 :: Ptr SampleCountFlagBits))-    pure $ CommandBufferInheritanceRenderingInfoKHR-             flags viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat rasterizationSamples--instance Zero CommandBufferInheritanceRenderingInfoKHR where-  zero = CommandBufferInheritanceRenderingInfoKHR-           zero-           zero-           mempty-           zero-           zero-           zero----- | VkAttachmentSampleCountInfoAMD - Structure specifying command buffer--- inheritance info for dynamic render pass instances------ = Description------ If--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'--- is specified in--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@, and the--- @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes--- 'AttachmentSampleCountInfoAMD', then this structure defines the sample--- counts of each attachment within the render pass instance. If--- 'AttachmentSampleCountInfoAMD' is not included, the value of--- 'CommandBufferInheritanceRenderingInfoKHR'::@rasterizationSamples@ is--- used as the sample count for each attachment. If--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'--- is not specified in--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,--- parameters of this structure are ignored.------ 'AttachmentSampleCountInfoAMD' /can/ also be included in the @pNext@--- chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'. When a--- graphics pipeline is created without a--- 'Vulkan.Core10.Handles.RenderPass', if this structure is present in the--- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it--- specifies the sample count of attachments used for rendering. If this--- structure is not specified, and the pipeline does not include a--- 'Vulkan.Core10.Handles.RenderPass', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- is used as the sample count for each attachment. If a graphics pipeline--- is created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters--- of this structure are ignored.------ == Valid Usage (Implicit)------ -   #VUID-VkAttachmentSampleCountInfoAMD-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'------ -   #VUID-VkAttachmentSampleCountInfoAMD-pColorAttachmentSamples-parameter#---     @pColorAttachmentSamples@ /must/ be a valid pointer to an array of---     @colorAttachmentCount@ valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE'---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values------ -   #VUID-VkAttachmentSampleCountInfoAMD-depthStencilAttachmentSamples-parameter#---     If @depthStencilAttachmentSamples@ is not @0@,---     @depthStencilAttachmentSamples@ /must/ be a valid---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ -   #VUID-VkAttachmentSampleCountInfoAMD-colorAttachmentCount-arraylength#---     @colorAttachmentCount@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD-  { -- | @pColorAttachmentSamples@ is a pointer to an array of-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values-    -- defining the sample count of color attachments.-    colorAttachmentSamples :: Vector SampleCountFlagBits-  , -- | @depthStencilAttachmentSamples@ is a-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value-    -- defining the sample count of a depth\/stencil attachment.-    depthStencilAttachmentSamples :: SampleCountFlagBits-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (AttachmentSampleCountInfoAMD)-#endif-deriving instance Show AttachmentSampleCountInfoAMD--instance ToCStruct AttachmentSampleCountInfoAMD where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p AttachmentSampleCountInfoAMD{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentSamples)) :: Word32))-    pPColorAttachmentSamples' <- ContT $ allocaBytes @SampleCountFlagBits ((Data.Vector.length (colorAttachmentSamples)) * 4)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentSamples' `plusPtr` (4 * (i)) :: Ptr SampleCountFlagBits) (e)) (colorAttachmentSamples)-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits))) (pPColorAttachmentSamples')-    lift $ poke ((p `plusPtr` 32 :: Ptr SampleCountFlagBits)) (depthStencilAttachmentSamples)-    lift $ f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    f--instance FromCStruct AttachmentSampleCountInfoAMD where-  peekCStruct p = do-    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    pColorAttachmentSamples <- peek @(Ptr SampleCountFlagBits) ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits)))-    pColorAttachmentSamples' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @SampleCountFlagBits ((pColorAttachmentSamples `advancePtrBytes` (4 * (i)) :: Ptr SampleCountFlagBits)))-    depthStencilAttachmentSamples <- peek @SampleCountFlagBits ((p `plusPtr` 32 :: Ptr SampleCountFlagBits))-    pure $ AttachmentSampleCountInfoAMD-             pColorAttachmentSamples' depthStencilAttachmentSamples--instance Zero AttachmentSampleCountInfoAMD where-  zero = AttachmentSampleCountInfoAMD-           mempty-           zero----- | VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview--- per-attribute properties------ = Description------ When dynamic render pass instances are being used, instead of specifying--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX'--- or--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'--- in the subpass description flags, the per-attibute properties of the--- render pass instance /must/ be specified by the--- 'MultiviewPerViewAttributesInfoNVX' structure Include the--- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' when creating a--- graphics pipeline for dynamic rendering, 'RenderingInfoKHR' when--- starting a dynamic render pass instance, and--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' when--- specifying the dynamic render pass instance parameters for secondary--- command buffers.------ == Valid Usage------ -   #VUID-VkMultiviewPerViewAttributesInfoNVX-perViewAttributesPositionXOnly-06163#---     If @perViewAttributesPositionXOnly@ is---     'Vulkan.Core10.FundamentalTypes.TRUE' then @perViewAttributes@---     /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'------ == Valid Usage (Implicit)------ -   #VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType# @sType@---     /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX-  { -- | @perViewAttributes@ specifies that shaders compiled for this pipeline-    -- write the attributes for all views in a single invocation of each vertex-    -- processing stage. All pipelines executed within a render pass instance-    -- that includes this bit /must/ write per-view attributes to the-    -- @*PerViewNV[]@ shader outputs, in addition to the non-per-view (e.g.-    -- @Position@) outputs.-    perViewAttributes :: Bool-  , -- | @perViewAttributesPositionXOnly@ specifies that shaders compiled for-    -- this pipeline use per-view positions which only differ in value in the x-    -- component. Per-view viewport mask /can/ also be used.-    perViewAttributesPositionXOnly :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (MultiviewPerViewAttributesInfoNVX)-#endif-deriving instance Show MultiviewPerViewAttributesInfoNVX--instance ToCStruct MultiviewPerViewAttributesInfoNVX where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p MultiviewPerViewAttributesInfoNVX{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (perViewAttributes))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (perViewAttributesPositionXOnly))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct MultiviewPerViewAttributesInfoNVX where-  peekCStruct p = do-    perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    pure $ MultiviewPerViewAttributesInfoNVX-             (bool32ToBool perViewAttributes) (bool32ToBool perViewAttributesPositionXOnly)--instance Storable MultiviewPerViewAttributesInfoNVX where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero MultiviewPerViewAttributesInfoNVX where-  zero = MultiviewPerViewAttributesInfoNVX-           zero-           zero---type RenderingFlagsKHR = RenderingFlagBitsKHR---- | VkRenderingFlagBitsKHR - Bitmask specifying additional properties of a--- dynamic render pass instance------ = Description------ The contents of @pRenderingInfo@ /must/ match between suspended render--- pass instances and the render pass instances that resume them, other--- than the presence or absence of the 'RENDERING_RESUMING_BIT_KHR',--- 'RENDERING_SUSPENDING_BIT_KHR', and--- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR' flags. No action--- or synchronization commands, or other render pass instances, are allowed--- between suspending and resuming render pass instances.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'RenderingFlagsKHR'-newtype RenderingFlagBitsKHR = RenderingFlagBitsKHR Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR' specifies that--- draw calls for the render pass instance will be recorded in secondary--- command buffers.-pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = RenderingFlagBitsKHR 0x00000001--- | 'RENDERING_SUSPENDING_BIT_KHR' specifies that the render pass instance--- will be suspended.-pattern RENDERING_SUSPENDING_BIT_KHR                         = RenderingFlagBitsKHR 0x00000002--- | 'RENDERING_RESUMING_BIT_KHR' specifies that the render pass instance is--- resuming an earlier suspended render pass instance.-pattern RENDERING_RESUMING_BIT_KHR                           = RenderingFlagBitsKHR 0x00000004--conNameRenderingFlagBitsKHR :: String-conNameRenderingFlagBitsKHR = "RenderingFlagBitsKHR"--enumPrefixRenderingFlagBitsKHR :: String-enumPrefixRenderingFlagBitsKHR = "RENDERING_"--showTableRenderingFlagBitsKHR :: [(RenderingFlagBitsKHR, String)]-showTableRenderingFlagBitsKHR =-  [ (RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR, "CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR")-  , (RENDERING_SUSPENDING_BIT_KHR                        , "SUSPENDING_BIT_KHR")-  , (RENDERING_RESUMING_BIT_KHR                          , "RESUMING_BIT_KHR")-  ]--instance Show RenderingFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixRenderingFlagBitsKHR-                            showTableRenderingFlagBitsKHR-                            conNameRenderingFlagBitsKHR-                            (\(RenderingFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read RenderingFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixRenderingFlagBitsKHR-                          showTableRenderingFlagBitsKHR-                          conNameRenderingFlagBitsKHR-                          RenderingFlagBitsKHR+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+--     -   Tobias Hector+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_dynamic_rendering] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_dynamic_rendering extension>> >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.asciidoc VK_KHR_dynamic_rendering>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-10-06+--+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+--+-- [__Contributors__]+--+--     -   Tobias Hector, AMD+--+--     -   Arseny Kapoulkine, Roblox+--+--     -   François Duranleau, Gameloft+--+--     -   Stuart Smith, AMD+--+--     -   Hai Nguyen, Google+--+--     -   Jean-François Roy, Google+--+--     -   Jeff Leger, Qualcomm+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Piers Daniell, Nvidia+--+--     -   James Fitzpatrick, Imagination+--+--     -   Piotr Byszewski, Mobica+--+--     -   Jesse Hall, Google+--+--     -   Mike Blumenkrantz, Valve+--+-- == Description+--+-- This extension allows applications to create single-pass render pass+-- instances without needing to create render pass objects or framebuffers.+-- Dynamic render passes can also span across multiple primary command+-- buffers, rather than relying on secondary command buffers.+--+-- This extension also incorporates 'ATTACHMENT_STORE_OP_NONE_KHR' from+-- <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>,+-- enabling applications to avoid unnecessary synchronization when an+-- attachment is not written during a render pass.+--+-- == New Commands+--+-- -   'cmdBeginRenderingKHR'+--+-- -   'cmdEndRenderingKHR'+--+-- == New Structures+--+-- -   'RenderingAttachmentInfoKHR'+--+-- -   'RenderingInfoKHR'+--+-- -   Extending+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':+--+--     -   'CommandBufferInheritanceRenderingInfoKHR'+--+-- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':+--+--     -   'PipelineRenderingCreateInfoKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceDynamicRenderingFeaturesKHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':+--+--     -   'AttachmentSampleCountInfoAMD'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+--     -   'RenderingFragmentDensityMapAttachmentInfoEXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+--     -   'RenderingFragmentShadingRateAttachmentInfoKHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':+--+--     -   'AttachmentSampleCountInfoNV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+--     -   'MultiviewPerViewAttributesInfoNVX'+--+-- == New Enums+--+-- -   'RenderingFlagBitsKHR'+--+-- == New Bitmasks+--+-- -   'RenderingFlagsKHR'+--+-- == New Enum Constants+--+-- -   'KHR_DYNAMIC_RENDERING_EXTENSION_NAME'+--+-- -   'KHR_DYNAMIC_RENDERING_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':+--+--     -   'ATTACHMENT_STORE_OP_NONE_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'+--+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'+--+--     -   'STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'+--+--     -   'STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'+--+--     -   'STRUCTURE_TYPE_RENDERING_INFO_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>+-- is supported:+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+--     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+--     -   'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>+-- is supported:+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>+-- is supported:+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'+--+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- == Version History+--+-- -   Revision 1, 2021-10-06 (Tobias Hector)+--+--     -   Initial revision+--+-- == See Also+--+-- 'CommandBufferInheritanceRenderingInfoKHR',+-- 'PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'PipelineRenderingCreateInfoKHR', 'RenderingAttachmentInfoKHR',+-- 'RenderingFlagBitsKHR', 'RenderingFlagsKHR', 'RenderingInfoKHR',+-- 'cmdBeginRenderingKHR', 'cmdEndRenderingKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_dynamic_rendering  ( pattern STRUCTURE_TYPE_RENDERING_INFO_KHR+                                                   , pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR+                                                   , pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR+                                                   , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR+                                                   , pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR+                                                   , pattern ATTACHMENT_STORE_OP_NONE_KHR+                                                   , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+                                                   , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT+                                                   , pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV+                                                   , cmdBeginRenderingKHR+                                                   , cmdEndRenderingKHR+                                                   , RenderingFragmentShadingRateAttachmentInfoKHR(..)+                                                   , RenderingFragmentDensityMapAttachmentInfoEXT(..)+                                                   , AttachmentSampleCountInfoAMD(..)+                                                   , MultiviewPerViewAttributesInfoNVX(..)+                                                   , RenderingFlagsKHR+                                                   , RenderingFlagBitsKHR+                                                   , PipelineRenderingCreateInfoKHR+                                                   , RenderingInfoKHR+                                                   , RenderingAttachmentInfoKHR+                                                   , PhysicalDeviceDynamicRenderingFeaturesKHR+                                                   , CommandBufferInheritanceRenderingInfoKHR+                                                   , AttachmentSampleCountInfoNV+                                                   , KHR_DYNAMIC_RENDERING_SPEC_VERSION+                                                   , pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION+                                                   , KHR_DYNAMIC_RENDERING_EXTENSION_NAME+                                                   , pattern KHR_DYNAMIC_RENDERING_EXTENSION_NAME+                                                   ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (cmdBeginRendering)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (cmdEndRendering)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo)+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Handles (ImageView)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo)+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlagBits)+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"+pattern STRUCTURE_TYPE_RENDERING_INFO_KHR = STRUCTURE_TYPE_RENDERING_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR"+pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO+++-- No documentation found for TopLevel "VK_ATTACHMENT_STORE_OP_NONE_KHR"+pattern ATTACHMENT_STORE_OP_NONE_KHR = ATTACHMENT_STORE_OP_NONE+++-- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"+pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"+pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV"+pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD+++-- No documentation found for TopLevel "vkCmdBeginRenderingKHR"+cmdBeginRenderingKHR = cmdBeginRendering+++-- No documentation found for TopLevel "vkCmdEndRenderingKHR"+cmdEndRenderingKHR = cmdEndRendering+++-- | VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying+-- fragment shading rate attachment information+--+-- = Description+--+-- This structure can be included in the @pNext@ chain of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to+-- define a+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- If @imageView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or if this+-- structure is not specified, the implementation behaves as if a valid+-- shading rate attachment was specified with all texels specifying a+-- single pixel per fragment.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @layout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it+--     /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @shadingRateAttachmentTexelSize.width@ /must/ be a power of two+--     value+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @shadingRateAttachmentTexelSize.width@ /must/ be greater than or+--     equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @shadingRateAttachmentTexelSize.height@ /must/ be a power of two+--     value+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @shadingRateAttachmentTexelSize.height@ /must/ be greater than or+--     equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the+--     quotient of @shadingRateAttachmentTexelSize.width@ and+--     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the+--     quotient of @shadingRateAttachmentTexelSize.height@ and+--     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType#+--     @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+--     handle+--+-- -   #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter#+--     @imageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR+  { -- | @imageView@ is the image view that will be used as a fragment shading+    -- rate attachment.+    imageView :: ImageView+  , -- | @imageLayout@ is the layout that @imageView@ will be in during+    -- rendering.+    imageLayout :: ImageLayout+  , -- | @shadingRateAttachmentTexelSize@ specifies the number of pixels+    -- corresponding to each texel in @imageView@.+    shadingRateAttachmentTexelSize :: Extent2D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)+#endif+deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR++instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderingFragmentShadingRateAttachmentInfoKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)+    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)+    f++instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where+  peekCStruct p = do+    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))+    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+    shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))+    pure $ RenderingFragmentShadingRateAttachmentInfoKHR+             imageView imageLayout shadingRateAttachmentTexelSize++instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where+  zero = RenderingFragmentShadingRateAttachmentInfoKHR+           zero+           zero+           zero+++-- | VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying+-- fragment shading rate attachment information+--+-- = Description+--+-- This structure can be included in the @pNext@ chain of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to+-- define a fragment density map. If this structure is not included in the+-- @pNext@ chain, @imageView@ is treated as+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @layout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'+--+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it+--     /must/ have been created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'+--+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159#+--     If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it+--     /must/ not have been created with+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType#+--     @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'+--+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter#+--     @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+--     handle+--+-- -   #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter#+--     @imageLayout@ /must/ be a valid+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT+  { -- | @imageView@ is the image view that will be used as a fragment shading+    -- rate attachment.+    imageView :: ImageView+  , -- | @imageLayout@ is the layout that @imageView@ will be in during+    -- rendering.+    imageLayout :: ImageLayout+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingFragmentDensityMapAttachmentInfoEXT)+#endif+deriving instance Show RenderingFragmentDensityMapAttachmentInfoEXT++instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderingFragmentDensityMapAttachmentInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+    f++instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT where+  peekCStruct p = do+    imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))+    imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+    pure $ RenderingFragmentDensityMapAttachmentInfoEXT+             imageView imageLayout++instance Storable RenderingFragmentDensityMapAttachmentInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where+  zero = RenderingFragmentDensityMapAttachmentInfoEXT+           zero+           zero+++-- | VkAttachmentSampleCountInfoAMD - Structure specifying command buffer+-- inheritance info for dynamic render pass instances+--+-- = Description+--+-- If+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+-- is specified in+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@, and the+-- @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+-- 'AttachmentSampleCountInfoAMD', then this structure defines the sample+-- counts of each attachment within the render pass instance. If+-- 'AttachmentSampleCountInfoAMD' is not included, the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+-- is used as the sample count for each attachment. If+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+-- is not specified in+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,+-- parameters of this structure are ignored.+--+-- 'AttachmentSampleCountInfoAMD' /can/ also be included in the @pNext@+-- chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'. When a+-- graphics pipeline is created without a+-- 'Vulkan.Core10.Handles.RenderPass', if this structure is present in the+-- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it+-- specifies the sample count of attachments used for rendering. If this+-- structure is not specified, and the pipeline does not include a+-- 'Vulkan.Core10.Handles.RenderPass', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- is used as the sample count for each attachment. If a graphics pipeline+-- is created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters+-- of this structure are ignored.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkAttachmentSampleCountInfoAMD-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'+--+-- -   #VUID-VkAttachmentSampleCountInfoAMD-pColorAttachmentSamples-parameter#+--     @pColorAttachmentSamples@ /must/ be a valid pointer to an array of+--     @colorAttachmentCount@ valid or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values+--+-- -   #VUID-VkAttachmentSampleCountInfoAMD-depthStencilAttachmentSamples-parameter#+--     If @depthStencilAttachmentSamples@ is not @0@,+--     @depthStencilAttachmentSamples@ /must/ be a valid+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- -   #VUID-VkAttachmentSampleCountInfoAMD-colorAttachmentCount-arraylength#+--     @colorAttachmentCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD+  { -- | @pColorAttachmentSamples@ is a pointer to an array of+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values+    -- defining the sample count of color attachments.+    colorAttachmentSamples :: Vector SampleCountFlagBits+  , -- | @depthStencilAttachmentSamples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- defining the sample count of a depth\/stencil attachment.+    depthStencilAttachmentSamples :: SampleCountFlagBits+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (AttachmentSampleCountInfoAMD)+#endif+deriving instance Show AttachmentSampleCountInfoAMD++instance ToCStruct AttachmentSampleCountInfoAMD where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p AttachmentSampleCountInfoAMD{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentSamples)) :: Word32))+    pPColorAttachmentSamples' <- ContT $ allocaBytes @SampleCountFlagBits ((Data.Vector.length (colorAttachmentSamples)) * 4)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentSamples' `plusPtr` (4 * (i)) :: Ptr SampleCountFlagBits) (e)) (colorAttachmentSamples)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits))) (pPColorAttachmentSamples')+    lift $ poke ((p `plusPtr` 32 :: Ptr SampleCountFlagBits)) (depthStencilAttachmentSamples)+    lift $ f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct AttachmentSampleCountInfoAMD where+  peekCStruct p = do+    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pColorAttachmentSamples <- peek @(Ptr SampleCountFlagBits) ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits)))+    pColorAttachmentSamples' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @SampleCountFlagBits ((pColorAttachmentSamples `advancePtrBytes` (4 * (i)) :: Ptr SampleCountFlagBits)))+    depthStencilAttachmentSamples <- peek @SampleCountFlagBits ((p `plusPtr` 32 :: Ptr SampleCountFlagBits))+    pure $ AttachmentSampleCountInfoAMD+             pColorAttachmentSamples' depthStencilAttachmentSamples++instance Zero AttachmentSampleCountInfoAMD where+  zero = AttachmentSampleCountInfoAMD+           mempty+           zero+++-- | VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview+-- per-attribute properties+--+-- = Description+--+-- When dynamic render pass instances are being used, instead of specifying+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX'+-- or+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'+-- in the subpass description flags, the per-attibute properties of the+-- render pass instance /must/ be specified by the+-- 'MultiviewPerViewAttributesInfoNVX' structure Include the+-- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' when creating a+-- graphics pipeline for dynamic rendering,+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+-- when starting a dynamic render pass instance, and+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' when+-- specifying the dynamic render pass instance parameters for secondary+-- command buffers.+--+-- == Valid Usage+--+-- -   #VUID-VkMultiviewPerViewAttributesInfoNVX-perViewAttributesPositionXOnly-06163#+--     If @perViewAttributesPositionXOnly@ is+--     'Vulkan.Core10.FundamentalTypes.TRUE' then @perViewAttributes@+--     /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX+  { -- | @perViewAttributes@ specifies that shaders compiled for this pipeline+    -- write the attributes for all views in a single invocation of each vertex+    -- processing stage. All pipelines executed within a render pass instance+    -- that includes this bit /must/ write per-view attributes to the+    -- @*PerViewNV[]@ shader outputs, in addition to the non-per-view (e.g.+    -- @Position@) outputs.+    perViewAttributes :: Bool+  , -- | @perViewAttributesPositionXOnly@ specifies that shaders compiled for+    -- this pipeline use per-view positions which only differ in value in the x+    -- component. Per-view viewport mask /can/ also be used.+    perViewAttributesPositionXOnly :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MultiviewPerViewAttributesInfoNVX)+#endif+deriving instance Show MultiviewPerViewAttributesInfoNVX++instance ToCStruct MultiviewPerViewAttributesInfoNVX where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MultiviewPerViewAttributesInfoNVX{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (perViewAttributes))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (perViewAttributesPositionXOnly))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct MultiviewPerViewAttributesInfoNVX where+  peekCStruct p = do+    perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ MultiviewPerViewAttributesInfoNVX+             (bool32ToBool perViewAttributes) (bool32ToBool perViewAttributesPositionXOnly)++instance Storable MultiviewPerViewAttributesInfoNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MultiviewPerViewAttributesInfoNVX where+  zero = MultiviewPerViewAttributesInfoNVX+           zero+           zero+++-- No documentation found for TopLevel "VkRenderingFlagsKHR"+type RenderingFlagsKHR = RenderingFlags+++-- No documentation found for TopLevel "VkRenderingFlagBitsKHR"+type RenderingFlagBitsKHR = RenderingFlagBits+++-- No documentation found for TopLevel "VkPipelineRenderingCreateInfoKHR"+type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo+++-- No documentation found for TopLevel "VkRenderingInfoKHR"+type RenderingInfoKHR = RenderingInfo+++-- No documentation found for TopLevel "VkRenderingAttachmentInfoKHR"+type RenderingAttachmentInfoKHR = RenderingAttachmentInfo+++-- No documentation found for TopLevel "VkPhysicalDeviceDynamicRenderingFeaturesKHR"+type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures+++-- No documentation found for TopLevel "VkCommandBufferInheritanceRenderingInfoKHR"+type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo   -- No documentation found for TopLevel "VkAttachmentSampleCountInfoNV"
src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Tobias Hector@@ -36,6 +41,10 @@ -- [__Last Modified Date__] --     2021-10-06 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__Contributors__] -- --     -   Tobias Hector, AMD@@ -71,9 +80,8 @@ -- Dynamic render passes can also span across multiple primary command -- buffers, rather than relying on secondary command buffers. ----- This extension also incorporates--- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'--- from <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>,+-- This extension also incorporates 'ATTACHMENT_STORE_OP_NONE_KHR' from+-- <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>, -- enabling applications to avoid unnecessary synchronization when an -- attachment is not written during a render pass. --@@ -118,7 +126,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map> -- is supported: ----- -   Extending 'RenderingInfoKHR':+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- --     -   'RenderingFragmentDensityMapAttachmentInfoEXT' --@@ -126,7 +135,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate> -- is supported: ----- -   Extending 'RenderingInfoKHR':+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- --     -   'RenderingFragmentShadingRateAttachmentInfoKHR' --@@ -147,7 +157,7 @@ -- -   Extending --     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',---     'RenderingInfoKHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- --     -   'MultiviewPerViewAttributesInfoNVX' --@@ -167,19 +177,19 @@ -- -- -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp': -----     -   'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'+--     -   'ATTACHMENT_STORE_OP_NONE_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'+--     -   'STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'+--     -   'STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'+--     -   'STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO_KHR'+--     -   'STRUCTURE_TYPE_RENDERING_INFO_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>@@ -235,6 +245,12 @@ -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2021-10-06 (Tobias Hector)@@ -252,27 +268,20 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_dynamic_rendering  ( AttachmentSampleCountInfoAMD-                                                   , CommandBufferInheritanceRenderingInfoKHR                                                    , MultiviewPerViewAttributesInfoNVX-                                                   , PhysicalDeviceDynamicRenderingFeaturesKHR-                                                   , PipelineRenderingCreateInfoKHR-                                                   , RenderingAttachmentInfoKHR                                                    , RenderingFragmentDensityMapAttachmentInfoEXT                                                    , RenderingFragmentShadingRateAttachmentInfoKHR-                                                   , RenderingInfoKHR                                                    ) 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 (PokeChain)+ data AttachmentSampleCountInfoAMD  instance ToCStruct AttachmentSampleCountInfoAMD@@ -281,14 +290,6 @@ instance FromCStruct AttachmentSampleCountInfoAMD  -data CommandBufferInheritanceRenderingInfoKHR--instance ToCStruct CommandBufferInheritanceRenderingInfoKHR-instance Show CommandBufferInheritanceRenderingInfoKHR--instance FromCStruct CommandBufferInheritanceRenderingInfoKHR-- data MultiviewPerViewAttributesInfoNVX  instance ToCStruct MultiviewPerViewAttributesInfoNVX@@ -297,28 +298,6 @@ instance FromCStruct MultiviewPerViewAttributesInfoNVX  -data PhysicalDeviceDynamicRenderingFeaturesKHR--instance ToCStruct PhysicalDeviceDynamicRenderingFeaturesKHR-instance Show PhysicalDeviceDynamicRenderingFeaturesKHR--instance FromCStruct PhysicalDeviceDynamicRenderingFeaturesKHR---data PipelineRenderingCreateInfoKHR--instance ToCStruct PipelineRenderingCreateInfoKHR-instance Show PipelineRenderingCreateInfoKHR--instance FromCStruct PipelineRenderingCreateInfoKHR---data RenderingAttachmentInfoKHR--instance ToCStruct RenderingAttachmentInfoKHR-instance Show RenderingAttachmentInfoKHR-- data RenderingFragmentDensityMapAttachmentInfoEXT  instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT@@ -333,11 +312,4 @@ instance Show RenderingFragmentShadingRateAttachmentInfoKHR  instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR---type role RenderingInfoKHR nominal-data RenderingInfoKHR (es :: [Type])--instance (Extendss RenderingInfoKHR es, PokeChain es) => ToCStruct (RenderingInfoKHR es)-instance Show (Chain es) => Show (RenderingInfoKHR es) 
src/Vulkan/Extensions/VK_KHR_external_fence.hs view
@@ -119,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs view
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,7 +203,7 @@ -- Exporting a file descriptor from a fence /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence State>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence State>. -- -- == Return Codes --@@ -330,12 +330,12 @@ -- -- -   #VUID-VkImportFenceFdInfoKHR-handleType-01464# @handleType@ /must/ --     be a value included in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fence-handletypes-fd Handle Types Supported by >+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-fd Handle Types Supported by > --     table -- -- -   #VUID-VkImportFenceFdInfoKHR-fd-01541# @fd@ /must/ obey any --     requirements listed for @handleType@ in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility> -- -- If @handleType@ is -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT',@@ -470,13 +470,13 @@ -- -   #VUID-VkFenceGetFdInfoKHR-handleType-01454# If @handleType@ refers --     to a handle type with copy payload transference semantics, @fence@ --     /must/ be signaled, or have an associated---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation> --     pending execution -- -- -   #VUID-VkFenceGetFdInfoKHR-fence-01455# @fence@ /must/ not currently --     have its payload replaced by an imported payload as described below --     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads> --     unless that imported payload’s handle type was included in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties'::@exportFromImportedHandleTypes@ --     for @handleType@
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot view
@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -214,7 +214,7 @@ -- Exporting a Windows handle from a fence /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>. -- -- == Return Codes --@@ -343,7 +343,7 @@ -- -- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457# @handleType@ --     /must/ be a value included in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fence-handletypes-win32 Handle Types Supported by >+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-win32 Handle Types Supported by > --     table -- -- -   #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459# If@@ -365,11 +365,11 @@ -- -   #VUID-VkImportFenceWin32HandleInfoKHR-handle-01539# If @handle@ is --     not @NULL@, it /must/ obey any requirements listed for @handleType@ --     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility> -- -- -   #VUID-VkImportFenceWin32HandleInfoKHR-name-01540# If @name@ is not --     @NULL@, it /must/ obey any requirements listed for @handleType@ in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility> -- -- == Valid Usage (Implicit) --@@ -603,7 +603,7 @@ -- -   #VUID-VkFenceGetWin32HandleInfoKHR-fence-01450# @fence@ /must/ not --     currently have its payload replaced by an imported payload as --     described below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads> --     unless that imported payload’s handle type was included in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties'::@exportFromImportedHandleTypes@ --     for @handleType@@@ -611,7 +611,7 @@ -- -   #VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451# If @handleType@ --     refers to a handle type with copy payload transference semantics, --     @fence@ /must/ be signaled, or have an associated---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation> --     pending execution -- -- -   #VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452# @handleType@
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot view
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory.hs view
@@ -146,7 +146,7 @@ -- -- 2) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes. Applications must take care to obey all restrictions@@ -333,7 +333,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -237,7 +237,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -364,11 +364,11 @@ -- -   #VUID-VkImportMemoryFdInfoKHR-fd-01746# The memory represented by --     @fd@ /must/ have been created from a physical device and driver that --     is compatible with @device@ and @handleType@, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-memory-handle-types-compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility> -- -- -   #VUID-VkImportMemoryFdInfoKHR-fd-01520# @fd@ /must/ obey any --     requirements listed for @handleType@ in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility> -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -407,11 +407,11 @@ -- -   #VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518# If @handle@ is --     not @NULL@, it /must/ obey any requirements listed for @handleType@ --     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility> -- -- -   #VUID-VkImportMemoryWin32HandleInfoKHR-name-01519# If @name@ is not --     @NULL@, it /must/ obey any requirements listed for @handleType@ in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility> -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore.hs view
@@ -140,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs view
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -202,7 +202,7 @@ -- Exporting a file descriptor from a semaphore /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>. -- -- == Return Codes --@@ -331,12 +331,12 @@ -- -- -   #VUID-VkImportSemaphoreFdInfoKHR-handleType-01143# @handleType@ --     /must/ be a value included in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fd Handle Types Supported by >+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fd Handle Types Supported by > --     table -- -- -   #VUID-VkImportSemaphoreFdInfoKHR-fd-01544# @fd@ /must/ obey any --     requirements listed for @handleType@ in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- -   #VUID-VkImportSemaphoreFdInfoKHR-handleType-03263# If @handleType@ --     is@@ -497,7 +497,7 @@ -- -   #VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133# @semaphore@ /must/ --     not currently have its payload replaced by an imported payload as --     described below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads> --     unless that imported payload’s handle type was included in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@ --     for @handleType@@@ -505,13 +505,13 @@ -- -   #VUID-VkSemaphoreGetFdInfoKHR-handleType-01134# If @handleType@ --     refers to a handle type with copy payload transference semantics, as --     defined below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, --     there /must/ be no queue waiting on @semaphore@ -- -- -   #VUID-VkSemaphoreGetFdInfoKHR-handleType-01135# If @handleType@ --     refers to a handle type with copy payload transference semantics, --     @semaphore@ /must/ be signaled, or have an associated---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> --     pending execution -- -- -   #VUID-VkSemaphoreGetFdInfoKHR-handleType-01136# @handleType@ /must/
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -142,7 +142,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -248,7 +248,7 @@ -- Exporting a Windows handle from a semaphore /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>. -- -- == Return Codes --@@ -382,7 +382,7 @@ -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140# --     @handleType@ /must/ be a value included in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32 Handle Types Supported by >+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32 Handle Types Supported by > --     table -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466# If@@ -406,12 +406,12 @@ -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542# If @handle@ --     is not @NULL@, it /must/ obey any requirements listed for --     @handleType@ in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543# If @name@ is --     not @NULL@, it /must/ obey any requirements listed for @handleType@ --     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- -   #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261# If --     @handleType@ is@@ -673,7 +673,7 @@ -- or 'Vulkan.Core10.Queue.SubmitInfo'::@pSignalSemaphores@ corresponding -- to an entry in @pWaitSemaphoreValues@ or @pSignalSemaphoreValues@ -- respectively does not currently have a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-payloads payload>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-payloads payload> -- referring to a Direct3D 12 fence, the implementation /must/ ignore the -- value in the @pWaitSemaphoreValues@ or @pSignalSemaphoreValues@ entry. --@@ -841,7 +841,7 @@ -- -   #VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128# @semaphore@ --     /must/ not currently have its payload replaced by an imported --     payload as described below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads> --     unless that imported payload’s handle type was included in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@ --     for @handleType@@@ -849,13 +849,13 @@ -- -   #VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129# If --     @handleType@ refers to a handle type with copy payload transference --     semantics, as defined below in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, --     there /must/ be no queue waiting on @semaphore@ -- -- -   #VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130# If --     @handleType@ refers to a handle type with copy payload transference --     semantics, @semaphore@ /must/ be signaled, or have an associated---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> --     pending execution -- -- -   #VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131#
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot view
@@ -142,7 +142,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Lionel Landwerlin@@ -33,6 +38,10 @@ -- [__Last Modified Date__] --     2021-07-01 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. --@@ -52,9 +61,8 @@ -- -- == Description ----- This extension adds a new--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- 64bits format feature flag type to extend the existing+-- This extension adds a new 'FormatFeatureFlagBits2KHR' 64bits format+-- feature flag type to extend the existing -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' which -- is limited to 31 flags. At the time of this writing 29 bits of -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' are@@ -69,17 +77,16 @@ -- -- On top of replicating all the bits from -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- adds the following bits :+-- 'FormatFeatureFlagBits2KHR' adds the following bits : ----- -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' --     and---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR' --     indicate that an implementation supports respectively reading and --     writing a given 'Vulkan.Core10.Enums.Format.Format' through storage --     operations without specifying the format in the shader. ----- -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR' --     indicates that an implementation supports depth comparison performed --     by @OpImage*Dref@ instructions on a given --     'Vulkan.Core10.Enums.Format.Format'. Previously the result of@@ -97,11 +104,11 @@ -- -- == New Enums ----- -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'+-- -   'FormatFeatureFlagBits2KHR' -- -- == New Bitmasks ----- -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'+-- -   'FormatFeatureFlags2KHR' -- -- == New Enum Constants --@@ -111,8 +118,14 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR'+--     -   'STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2020-07-21 (Lionel Landwerlin)@@ -121,123 +134,45 @@ -- -- == See Also ----- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',+-- 'FormatFeatureFlagBits2KHR', 'FormatFeatureFlags2KHR', -- 'FormatProperties3KHR' -- -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_format_feature_flags2  ( FormatProperties3KHR(..)+module Vulkan.Extensions.VK_KHR_format_feature_flags2  ( pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR+                                                       , FormatFeatureFlags2KHR+                                                       , FormatFeatureFlagBits2KHR+                                                       , FormatProperties3KHR                                                        , KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION                                                        , pattern KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION                                                        , KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME                                                        , pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME-                                                       , FormatFeatureFlagBits2KHR(..)-                                                       , FormatFeatureFlags2KHR-                                                       , Flags64                                                        ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)--- | VkFormatProperties3KHR - Structure specifying image format properties------ = Description------ The bits reported in @linearTilingFeatures@, @optimalTilingFeatures@ and--- @bufferFeatures@ /must/ include the bits reported in the corresponding--- fields of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'::@formatProperties@.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data FormatProperties3KHR = FormatProperties3KHR-  { -- | @linearTilingFeatures@ is a bitmask of-    -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'-    -- specifying features supported by images created with a @tiling@-    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'.-    linearTilingFeatures :: FormatFeatureFlags2KHR-  , -- | @optimalTilingFeatures@ is a bitmask of-    -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'-    -- specifying features supported by images created with a @tiling@-    -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.-    optimalTilingFeatures :: FormatFeatureFlags2KHR-  , -- | @bufferFeatures@ is a bitmask of-    -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'-    -- specifying features supported by buffers.-    bufferFeatures :: FormatFeatureFlags2KHR-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (FormatProperties3KHR)-#endif-deriving instance Show FormatProperties3KHR+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlagBits2)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2)+import Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_3))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR"+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = STRUCTURE_TYPE_FORMAT_PROPERTIES_3 -instance ToCStruct FormatProperties3KHR where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p FormatProperties3KHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR)) (linearTilingFeatures)-    poke ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2KHR)) (optimalTilingFeatures)-    poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR)) (bufferFeatures)-    f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    f -instance FromCStruct FormatProperties3KHR where-  peekCStruct p = do-    linearTilingFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR))-    optimalTilingFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2KHR))-    bufferFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR))-    pure $ FormatProperties3KHR-             linearTilingFeatures optimalTilingFeatures bufferFeatures+-- No documentation found for TopLevel "VkFormatFeatureFlags2KHR"+type FormatFeatureFlags2KHR = FormatFeatureFlags2 -instance Storable FormatProperties3KHR where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero FormatProperties3KHR where-  zero = FormatProperties3KHR-           zero-           zero-           zero+-- No documentation found for TopLevel "VkFormatFeatureFlagBits2KHR"+type FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2+++-- No documentation found for TopLevel "VkFormatProperties3KHR"+type FormatProperties3KHR = FormatProperties3   type KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs-boot
@@ -1,147 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_format_feature_flags2 - device extension------ == VK_KHR_format_feature_flags2------ [__Name String__]---     @VK_KHR_format_feature_flags2@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     361------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Lionel Landwerlin---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_format_feature_flags2] @llandwerlin%0A<<Here describe the issue or question you have about the VK_KHR_format_feature_flags2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2021-07-01------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Lionel Landwerlin, Intel------     -   Jason Ekstrand, Intel------     -   Tobias Hector, AMD------     -   Spencer Fricke, Samsung Electronics------     -   Graeme Leese, Broadcom------     -   Jan-Harald Fredriksen, ARM------ == Description------ This extension adds a new--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- 64bits format feature flag type to extend the existing--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' which--- is limited to 31 flags. At the time of this writing 29 bits of--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' are--- already used.------ Because--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'--- is already defined to extend the Vulkan 1.0--- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'--- entry point, this extension defines a new 'FormatProperties3KHR' to--- extend the 'Vulkan.Core10.DeviceInitialization.FormatProperties'.------ On top of replicating all the bits from--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- adds the following bits :------ -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'---     and---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'---     indicate that an implementation supports respectively reading and---     writing a given 'Vulkan.Core10.Enums.Format.Format' through storage---     operations without specifying the format in the shader.------ -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'---     indicates that an implementation supports depth comparison performed---     by @OpImage*Dref@ instructions on a given---     'Vulkan.Core10.Enums.Format.Format'. Previously the result of---     executing a @OpImage*Dref*@ instruction on an image view, where the---     @format@ was not one of the depth\/stencil formats with a depth---     component, was undefined. This bit clarifies on which formats such---     instructions can be used.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':------     -   'FormatProperties3KHR'------ == New Enums------ -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'------ == New Bitmasks------ -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'------ == New Enum Constants------ -   'KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME'------ -   'KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR'------ == Version History------ -   Revision 1, 2020-07-21 (Lionel Landwerlin)------     -   Initial draft------ == See Also------ 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',--- 'FormatProperties3KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_format_feature_flags2  (FormatProperties3KHR) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data FormatProperties3KHR--instance ToCStruct FormatProperties3KHR-instance Show FormatProperties3KHR--instance FromCStruct FormatProperties3KHR-
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -80,14 +80,14 @@ -- Up to three methods are available to the application to change the -- fragment shading rate: ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>,+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>, --     which allows the specification of a rate per-draw. ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>,+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>, --     which allows the specification of a rate per primitive, specified --     during shading. ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>,+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>, --     which allows the specification of a rate per-region of the --     framebuffer, specified in a specialized image attachment. --@@ -101,7 +101,7 @@ -- -- This extension also adds support for the @SPV_KHR_fragment_shading_rate@ -- extension which enables setting the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>, -- and allows querying the final shading rate from a fragment shader. -- -- == New Commands@@ -188,9 +188,9 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Version History --@@ -216,7 +216,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -238,9 +238,6 @@                                                        , pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION                                                        , KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME                                                        , pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME-                                                       , FormatFeatureFlagBits2KHR(..)-                                                       , FormatFeatureFlags2KHR-                                                       , Flags64                                                        ) where  import Vulkan.CStruct.Utils (FixedArray)@@ -323,9 +320,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -352,37 +346,37 @@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507# --     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> --     is not enabled, @pFragmentSize->width@ /must/ be @1@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508# --     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> --     is not enabled, @pFragmentSize->height@ /must/ be @1@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509# --     One of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>, --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> --     /must/ be enabled -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> --     is not enabled, @combinerOps@[0] /must/ be --     'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is not enabled, @combinerOps@[1] /must/ be --     'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps> --     limit is not supported, elements of @combinerOps@ /must/ be either --     'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' or --     'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'@@ -461,12 +455,12 @@                                 ("fragmentSize" ::: Extent2D)                              -> -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' determining                                 -- how the-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,                                 -- and-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>                                 -- are-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>                                 -- for fragments generated by subsequent drawing commands.                                 ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))                              -> io ()@@ -519,7 +513,7 @@ -- For any entry in the array, the following rules also apply: -- -- -   The value of @fragmentSize.width@ /must/ be less than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.width>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.width>. -- -- -   The value of @fragmentSize.width@ /must/ be greater than or equal to --     @1@.@@ -527,7 +521,7 @@ -- -   The value of @fragmentSize.width@ /must/ be a power-of-two. -- -- -   The value of @fragmentSize.height@ /must/ be less than or equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.height>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.height>. -- -- -   The value of @fragmentSize.height@ /must/ be greater than or equal --     to @1@.@@ -536,12 +530,12 @@ -- -- -   The highest sample count in @sampleCounts@ /must/ be less than or --     equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples maxFragmentShadingRateRasterizationSamples>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples maxFragmentShadingRateRasterizationSamples>. -- -- -   The product of @fragmentSize.width@, @fragmentSize.height@, and the --     highest sample count in @sampleCounts@ /must/ be less than or equal --     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>. -- -- Implementations /must/ support at least the following shading rates: --@@ -560,7 +554,7 @@ -- +--------------------------------------------------------------+-----------------------------------+ -- -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-framebufferColorSampleCounts framebufferColorSampleCounts>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferColorSampleCounts framebufferColorSampleCounts>, -- includes 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT', -- the required rates /must/ also include -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT'.@@ -681,7 +675,7 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', --     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal --     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width> -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527# --     If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -689,7 +683,7 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', --     @shadingRateAttachmentTexelSize.width@ /must/ be greater than or --     equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width> -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528# --     If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -704,7 +698,7 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', --     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal --     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height> -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530# --     If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -712,7 +706,7 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', --     @shadingRateAttachmentTexelSize.height@ /must/ be greater than or --     equal to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height> -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531# --     If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -721,7 +715,7 @@ --     @shadingRateAttachmentTexelSize.width@ and --     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal --     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532# --     If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -730,7 +724,7 @@ --     @shadingRateAttachmentTexelSize.height@ and --     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal --     to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- == Valid Usage (Implicit) --@@ -839,12 +833,12 @@     fragmentSize :: Extent2D   , -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' value     -- determining how the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>     -- are-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>     -- for fragments generated by drawing commands using the created pipeline.     combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)   }@@ -929,15 +923,15 @@ data PhysicalDeviceFragmentShadingRateFeaturesKHR = PhysicalDeviceFragmentShadingRateFeaturesKHR   { -- | #features-pipelineFragmentShadingRate# @pipelineFragmentShadingRate@     -- indicates that the implementation supports the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline fragment shading rate>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline fragment shading rate>.     pipelineFragmentShadingRate :: Bool   , -- | #features-primitiveFragmentShadingRate# @primitiveFragmentShadingRate@     -- indicates that the implementation supports the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>.     primitiveFragmentShadingRate :: Bool   , -- | #features-attachmentFragmentShadingRate# @attachmentFragmentShadingRate@     -- indicates that the implementation supports the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>.     attachmentFragmentShadingRate :: Bool   }   deriving (Typeable, Eq)@@ -999,7 +993,7 @@ -- Some implementations inadvertently implemented an addition in linear -- space due to unclear requirements originating outside of this -- specification. This resulted in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner> -- being added. Fortunately, this only affects situations where a rate of 1 -- in either dimension is combined with another rate of 1. All other -- combinations result in the exact same result as if multiplication was@@ -1016,7 +1010,7 @@ -- property. -- -- These properties are related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>. -- -- == Valid Usage (Implicit) --@@ -1035,7 +1029,7 @@     -- than or equal to the values in     -- @maxFragmentShadingRateAttachmentTexelSize@. Each value /must/ be a     -- power-of-two. It /must/ be (0,0) if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>     -- feature is not supported.     minFragmentShadingRateAttachmentTexelSize :: Extent2D   , -- | #limits-maxFragmentShadingRateAttachmentTexelSize#@@ -1045,7 +1039,7 @@     -- greater than or equal to the values in     -- @minFragmentShadingRateAttachmentTexelSize@. Each value /must/ be a     -- power-of-two. It /must/ be (0,0) if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>     -- feature is not supported.     maxFragmentShadingRateAttachmentTexelSize :: Extent2D   , -- | #limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio#@@ -1059,23 +1053,23 @@     -- @maxFragmentShadingRateAttachmentTexelSize.height@ \/     -- @minFragmentShadingRateAttachmentTexelSize.width@). It /must/ be 0 if     -- the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>     -- feature is not supported.     maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32   , -- | #limits-primitiveFragmentShadingRateWithMultipleViewports#     -- @primitiveFragmentShadingRateWithMultipleViewports@ specifies whether     -- the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>     -- /can/ be used when multiple viewports are used. If this value is     -- 'Vulkan.Core10.FundamentalTypes.FALSE', only a single viewport /must/ be     -- used, and applications /must/ not write to the @ViewportMaskNV@ or     -- @ViewportIndex@ built-in when setting @PrimitiveShadingRateKHR@. It     -- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>     -- feature, the @VK_EXT_shader_viewport_index_layer@ extension, or the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>     -- feature is not supported, or if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>     -- feature is not supported.     primitiveFragmentShadingRateWithMultipleViewports :: Bool   , -- | #limits-layeredShadingRateAttachments# @layeredShadingRateAttachments@@@ -1086,13 +1080,13 @@     -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',     -- @layerCount@ /must/ be @1@. It /must/ be     -- 'Vulkan.Core10.FundamentalTypes.FALSE' if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>     -- feature, the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>     -- feature, the @VK_EXT_shader_viewport_index_layer@ extension, or the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>     -- feature is not supported, or if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>     -- feature is not supported.     layeredShadingRateAttachments :: Bool   , -- | #limits-fragmentShadingRateNonTrivialCombinerOps#@@ -1101,9 +1095,9 @@     -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' or     -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' /can/ be used. It /must/     -- be 'Vulkan.Core10.FundamentalTypes.FALSE' unless either the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>     -- or-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>     -- feature is supported.     fragmentShadingRateNonTrivialCombinerOps :: Bool   , -- | #limits-maxFragmentSize# @maxFragmentSize@ indicates the maximum@@ -1160,32 +1154,32 @@     fragmentShadingRateWithShaderSampleMask :: Bool   , -- | #limits-fragmentShadingRateWithConservativeRasterization#     -- @fragmentShadingRateWithConservativeRasterization@ specifies whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>     -- is supported for multi-pixel fragments. It /must/ be     -- 'Vulkan.Core10.FundamentalTypes.FALSE' if     -- @VK_EXT_conservative_rasterization@ is not supported. If this value is     -- 'Vulkan.Core10.FundamentalTypes.FALSE', using-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>     -- will clamp the fragment shading rate to (1,1).     fragmentShadingRateWithConservativeRasterization :: Bool   , -- | #limits-fragmentShadingRateWithFragmentShaderInterlock#     -- @fragmentShadingRateWithFragmentShaderInterlock@ specifies whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>     -- is supported for multi-pixel fragments. It /must/ be     -- 'Vulkan.Core10.FundamentalTypes.FALSE' if     -- @VK_EXT_fragment_shader_interlock@ is not supported. If this value is     -- 'Vulkan.Core10.FundamentalTypes.FALSE', using-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>     -- will clamp the fragment shading rate to (1,1).     fragmentShadingRateWithFragmentShaderInterlock :: Bool   , -- | #limits-fragmentShadingRateWithCustomSampleLocations#     -- @fragmentShadingRateWithCustomSampleLocations@ specifies whether-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>     -- are supported for multi-pixel fragments. It /must/ be     -- 'Vulkan.Core10.FundamentalTypes.FALSE' if @VK_EXT_sample_locations@ is     -- not supported. If this value is 'Vulkan.Core10.FundamentalTypes.FALSE',     -- using-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>     -- will clamp the fragment shading rate to (1,1).     fragmentShadingRateWithCustomSampleLocations :: Bool   , -- | #limits-fragmentShadingRateStrictMultiplyCombiner#@@ -1374,12 +1368,12 @@ -- inputs to the operation. -- -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner> -- is 'Vulkan.Core10.FundamentalTypes.FALSE', using -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' with values of 1 for both A -- and B in the same dimension results in the value 2 being produced for -- that dimension. See the definition of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner> -- for more information. -- -- These operations are performed in a component-wise fashion.
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot view
@@ -80,14 +80,14 @@ -- Up to three methods are available to the application to change the -- fragment shading rate: ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>,+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>, --     which allows the specification of a rate per-draw. ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>,+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>, --     which allows the specification of a rate per primitive, specified --     during shading. ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>,+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>, --     which allows the specification of a rate per-region of the --     framebuffer, specified in a specialized image attachment. --@@ -101,7 +101,7 @@ -- -- This extension also adds support for the @SPV_KHR_fragment_shading_rate@ -- extension which enables setting the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>, -- and allows querying the final shading rate from a fragment shader. -- -- == New Commands@@ -188,9 +188,9 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Version History --@@ -216,7 +216,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs view
@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot view
@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs view
@@ -124,7 +124,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot view
@@ -124,7 +124,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs view
@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -137,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot view
@@ -137,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_KHR_global_priority.hs view
@@ -0,0 +1,539 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_global_priority - device extension+--+-- == VK_KHR_global_priority+--+-- [__Name String__]+--     @VK_KHR_global_priority@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     189+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+-- [__Contact__]+--+--     -   Tobias Hector+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_global_priority] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_global_priority extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-10-22+--+-- [__Contributors__]+--+--     -   Tobias Hector, AMD+--+--     -   Contributors to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>+--+--     -   Contributors to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>+--+-- == Description+--+-- In Vulkan, users can specify device-scope queue priorities. In some+-- cases it may be useful to extend this concept to a system-wide scope.+-- This device extension allows applications to query the global queue+-- priorities supported by a queue family, and then set a priority when+-- creating queues. The default queue priority is+-- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.+--+-- Implementations can report which global priority levels are treated+-- differently by the implementation. It is intended primarily for use in+-- system integration along with certain platform-specific priority+-- enforcement rules.+--+-- The driver implementation will attempt to skew hardware resource+-- allocation in favour of the higher-priority task. Therefore,+-- higher-priority work may retain similar latency and throughput+-- characteristics even if the system is congested with lower priority+-- work.+--+-- The global priority level of a queue shall take precedence over the+-- per-process queue priority+-- ('Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@).+--+-- Abuse of this feature may result in starving the rest of the system from+-- hardware resources. Therefore, the driver implementation may deny+-- requests to acquire a priority above the default priority+-- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have+-- sufficient privileges. In this scenario+-- 'Vulkan.Extensions.VK_EXT_global_priority.ERROR_NOT_PERMITTED_EXT' is+-- returned.+--+-- The driver implementation may fail the queue allocation request if+-- resources required to complete the operation have been exhausted (either+-- by the same process or a different process). In this scenario+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.+--+-- == New Structures+--+-- -   Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo':+--+--     -   'DeviceQueueGlobalPriorityCreateInfoKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceGlobalPriorityQueryFeaturesKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':+--+--     -   'QueueFamilyGlobalPriorityPropertiesKHR'+--+-- == New Enums+--+-- -   'QueueGlobalPriorityKHR'+--+-- == New Enum Constants+--+-- -   'KHR_GLOBAL_PRIORITY_EXTENSION_NAME'+--+-- -   'KHR_GLOBAL_PRIORITY_SPEC_VERSION'+--+-- -   'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.Result.Result':+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'+--+-- == Issues+--+-- 1) Can we additionally query whether a caller is permitted to acquire a+-- specific global queue priority in this extension?+--+-- __RESOLVED__: No. Whether a caller has enough privilege goes with the+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call.+--+-- 2) If more than 1 queue using global priority is requested, is there a+-- good way to know which queue is failing the device creation?+--+-- __RESOLVED__: No. There is not a good way at this moment, and it is also+-- not quite actionable for the applications to know that because the+-- information may not be accurate. Queue creation can fail because of+-- runtime constraints like insufficient privilege or lack of resource, and+-- the failure is not necessarily tied to that particular queue+-- configuration requested.+--+-- == Version History+--+-- -   Revision 1, 2021-10-22 (Tobias Hector)+--+--     -   Initial draft+--+-- == See Also+--+-- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR',+-- 'DeviceQueueGlobalPriorityCreateInfoKHR',+-- 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR',+-- 'QueueFamilyGlobalPriorityPropertiesKHR', 'QueueGlobalPriorityKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_global_priority Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_global_priority  ( pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT+                                                 , pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT+                                                 , pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT+                                                 , pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT+                                                 , DeviceQueueGlobalPriorityCreateInfoKHR(..)+                                                 , PhysicalDeviceGlobalPriorityQueryFeaturesKHR(..)+                                                 , QueueFamilyGlobalPriorityPropertiesKHR(..)+                                                 , QueueGlobalPriorityKHR( QUEUE_GLOBAL_PRIORITY_LOW_KHR+                                                                         , QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR+                                                                         , QUEUE_GLOBAL_PRIORITY_HIGH_KHR+                                                                         , QUEUE_GLOBAL_PRIORITY_REALTIME_KHR+                                                                         , ..+                                                                         )+                                                 , KHR_GLOBAL_PRIORITY_SPEC_VERSION+                                                 , pattern KHR_GLOBAL_PRIORITY_SPEC_VERSION+                                                 , KHR_GLOBAL_PRIORITY_EXTENSION_NAME+                                                 , pattern KHR_GLOBAL_PRIORITY_EXTENSION_NAME+                                                 , MAX_GLOBAL_PRIORITY_SIZE_KHR+                                                 , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR+                                                 ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Control.Monad (unless)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Kind (Type)+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR))+import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"+pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT = QUEUE_GLOBAL_PRIORITY_LOW_KHR+++-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"+pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR+++-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"+pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT = QUEUE_GLOBAL_PRIORITY_HIGH_KHR+++-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"+pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = QUEUE_GLOBAL_PRIORITY_REALTIME_KHR+++-- | VkDeviceQueueGlobalPriorityCreateInfoKHR - Specify a system wide+-- priority+--+-- = Description+--+-- A queue created without specifying+-- 'DeviceQueueGlobalPriorityCreateInfoKHR' will default to+-- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,+-- 'QueueGlobalPriorityKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfoKHR+  { -- | @globalPriority@ is the system-wide priority associated to this queue as+    -- specified by+    -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT'+    --+    -- #VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter#+    -- @globalPriority@ /must/ be a valid 'QueueGlobalPriorityKHR' value+    globalPriority :: QueueGlobalPriorityKHR }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceQueueGlobalPriorityCreateInfoKHR)+#endif+deriving instance Show DeviceQueueGlobalPriorityCreateInfoKHR++instance ToCStruct DeviceQueueGlobalPriorityCreateInfoKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceQueueGlobalPriorityCreateInfoKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityKHR)) (globalPriority)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityKHR)) (zero)+    f++instance FromCStruct DeviceQueueGlobalPriorityCreateInfoKHR where+  peekCStruct p = do+    globalPriority <- peek @QueueGlobalPriorityKHR ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityKHR))+    pure $ DeviceQueueGlobalPriorityCreateInfoKHR+             globalPriority++instance Storable DeviceQueueGlobalPriorityCreateInfoKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceQueueGlobalPriorityCreateInfoKHR where+  zero = DeviceQueueGlobalPriorityCreateInfoKHR+           zero+++-- | VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - Structure describing+-- whether global priority query can be supported by an implementation+--+-- = Members+--+-- The members of the+-- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR' 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. 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR' /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_KHR_global_priority VK_KHR_global_priority>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceGlobalPriorityQueryFeaturesKHR = PhysicalDeviceGlobalPriorityQueryFeaturesKHR+  { -- | #features-globalPriorityQuery# @globalPriorityQuery@ indicates whether+    -- the implementation supports the ability to query global queue+    -- priorities.+    globalPriorityQuery :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceGlobalPriorityQueryFeaturesKHR++instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceGlobalPriorityQueryFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (globalPriorityQuery))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+  peekCStruct p = do+    globalPriorityQuery <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceGlobalPriorityQueryFeaturesKHR+             (bool32ToBool globalPriorityQuery)++instance Storable PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+  zero = PhysicalDeviceGlobalPriorityQueryFeaturesKHR+           zero+++-- | VkQueueFamilyGlobalPriorityPropertiesKHR - Return structure for queue+-- family global priority information query+--+-- = Description+--+-- The valid elements of @priorities@ /must/ not contain any duplicate+-- values.+--+-- The valid elements of @priorities@ /must/ be a continuous sequence of+-- 'QueueGlobalPriorityKHR' enums in the ascending order.+--+-- Note+--+-- For example, returning @priorityCount@ as 3 with supported @priorities@+-- as 'QUEUE_GLOBAL_PRIORITY_LOW_KHR', 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR'+-- and 'QUEUE_GLOBAL_PRIORITY_REALTIME_KHR' is not allowed.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'+--+-- -   #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter#+--     Any given element of @priorities@ /must/ be a valid+--     'QueueGlobalPriorityKHR' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,+-- 'QueueGlobalPriorityKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data QueueFamilyGlobalPriorityPropertiesKHR = QueueFamilyGlobalPriorityPropertiesKHR+  { -- | @priorityCount@ is the number of supported global queue priorities in+    -- this queue family, and it /must/ be greater than 0.+    priorityCount :: Word32+  , -- | @priorities@ is an array of+    -- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'+    -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums+    -- representing all supported global queue priorities in this queue family.+    -- The first @priorityCount@ elements of the array will be valid.+    priorities :: Vector QueueGlobalPriorityKHR+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (QueueFamilyGlobalPriorityPropertiesKHR)+#endif+deriving instance Show QueueFamilyGlobalPriorityPropertiesKHR++instance ToCStruct QueueFamilyGlobalPriorityPropertiesKHR where+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p QueueFamilyGlobalPriorityPropertiesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (priorityCount)+    unless ((Data.Vector.length $ (priorities)) <= MAX_GLOBAL_PRIORITY_SIZE_KHR) $+      throwIO $ IOError Nothing InvalidArgument "" "priorities is too long, a maximum of MAX_GLOBAL_PRIORITY_SIZE_KHR elements are allowed" Nothing Nothing+    Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_KHR QueueGlobalPriorityKHR)))) `plusPtr` (4 * (i)) :: Ptr QueueGlobalPriorityKHR) (e)) (priorities)+    f+  cStructSize = 88+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    f++instance FromCStruct QueueFamilyGlobalPriorityPropertiesKHR where+  peekCStruct p = do+    priorityCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    priorities <- generateM (MAX_GLOBAL_PRIORITY_SIZE_KHR) (\i -> peek @QueueGlobalPriorityKHR (((lowerArrayPtr @QueueGlobalPriorityKHR ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_KHR QueueGlobalPriorityKHR)))) `advancePtrBytes` (4 * (i)) :: Ptr QueueGlobalPriorityKHR)))+    pure $ QueueFamilyGlobalPriorityPropertiesKHR+             priorityCount priorities++instance Storable QueueFamilyGlobalPriorityPropertiesKHR where+  sizeOf ~_ = 88+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero QueueFamilyGlobalPriorityPropertiesKHR where+  zero = QueueFamilyGlobalPriorityPropertiesKHR+           zero+           mempty+++-- | VkQueueGlobalPriorityKHR - Values specifying a system-wide queue+-- priority+--+-- = Description+--+-- Priority values are sorted in ascending order. A comparison operation on+-- the enum values can be used to determine the priority order.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,+-- 'DeviceQueueGlobalPriorityCreateInfoKHR',+-- 'QueueFamilyGlobalPriorityPropertiesKHR'+newtype QueueGlobalPriorityKHR = QueueGlobalPriorityKHR Int32+  deriving newtype (Eq, Ord, Storable, Zero)+-- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error++-- | 'QUEUE_GLOBAL_PRIORITY_LOW_KHR' is below the system default. Useful for+-- non-interactive tasks.+pattern QUEUE_GLOBAL_PRIORITY_LOW_KHR      = QueueGlobalPriorityKHR 128+-- | 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR' is the system default priority.+pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR   = QueueGlobalPriorityKHR 256+-- | 'QUEUE_GLOBAL_PRIORITY_HIGH_KHR' is above the system default.+pattern QUEUE_GLOBAL_PRIORITY_HIGH_KHR     = QueueGlobalPriorityKHR 512+-- | 'QUEUE_GLOBAL_PRIORITY_REALTIME_KHR' is the highest priority. Useful for+-- critical tasks.+pattern QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = QueueGlobalPriorityKHR 1024+{-# complete QUEUE_GLOBAL_PRIORITY_LOW_KHR,+             QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,+             QUEUE_GLOBAL_PRIORITY_HIGH_KHR,+             QUEUE_GLOBAL_PRIORITY_REALTIME_KHR :: QueueGlobalPriorityKHR #-}++conNameQueueGlobalPriorityKHR :: String+conNameQueueGlobalPriorityKHR = "QueueGlobalPriorityKHR"++enumPrefixQueueGlobalPriorityKHR :: String+enumPrefixQueueGlobalPriorityKHR = "QUEUE_GLOBAL_PRIORITY_"++showTableQueueGlobalPriorityKHR :: [(QueueGlobalPriorityKHR, String)]+showTableQueueGlobalPriorityKHR =+  [ (QUEUE_GLOBAL_PRIORITY_LOW_KHR     , "LOW_KHR")+  , (QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR  , "MEDIUM_KHR")+  , (QUEUE_GLOBAL_PRIORITY_HIGH_KHR    , "HIGH_KHR")+  , (QUEUE_GLOBAL_PRIORITY_REALTIME_KHR, "REALTIME_KHR")+  ]++instance Show QueueGlobalPriorityKHR where+  showsPrec = enumShowsPrec enumPrefixQueueGlobalPriorityKHR+                            showTableQueueGlobalPriorityKHR+                            conNameQueueGlobalPriorityKHR+                            (\(QueueGlobalPriorityKHR x) -> x)+                            (showsPrec 11)++instance Read QueueGlobalPriorityKHR where+  readPrec = enumReadPrec enumPrefixQueueGlobalPriorityKHR+                          showTableQueueGlobalPriorityKHR+                          conNameQueueGlobalPriorityKHR+                          QueueGlobalPriorityKHR+++type KHR_GLOBAL_PRIORITY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION"+pattern KHR_GLOBAL_PRIORITY_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_GLOBAL_PRIORITY_SPEC_VERSION = 1+++type KHR_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_KHR_global_priority"++-- No documentation found for TopLevel "VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME"+pattern KHR_GLOBAL_PRIORITY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_KHR_global_priority"+
+ src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot view
@@ -0,0 +1,197 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_global_priority - device extension+--+-- == VK_KHR_global_priority+--+-- [__Name String__]+--     @VK_KHR_global_priority@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     189+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+-- [__Contact__]+--+--     -   Tobias Hector+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_global_priority] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_global_priority extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-10-22+--+-- [__Contributors__]+--+--     -   Tobias Hector, AMD+--+--     -   Contributors to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>+--+--     -   Contributors to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>+--+-- == Description+--+-- In Vulkan, users can specify device-scope queue priorities. In some+-- cases it may be useful to extend this concept to a system-wide scope.+-- This device extension allows applications to query the global queue+-- priorities supported by a queue family, and then set a priority when+-- creating queues. The default queue priority is+-- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.+--+-- Implementations can report which global priority levels are treated+-- differently by the implementation. It is intended primarily for use in+-- system integration along with certain platform-specific priority+-- enforcement rules.+--+-- The driver implementation will attempt to skew hardware resource+-- allocation in favour of the higher-priority task. Therefore,+-- higher-priority work may retain similar latency and throughput+-- characteristics even if the system is congested with lower priority+-- work.+--+-- The global priority level of a queue shall take precedence over the+-- per-process queue priority+-- ('Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@).+--+-- Abuse of this feature may result in starving the rest of the system from+-- hardware resources. Therefore, the driver implementation may deny+-- requests to acquire a priority above the default priority+-- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have+-- sufficient privileges. In this scenario+-- 'Vulkan.Extensions.VK_EXT_global_priority.ERROR_NOT_PERMITTED_EXT' is+-- returned.+--+-- The driver implementation may fail the queue allocation request if+-- resources required to complete the operation have been exhausted (either+-- by the same process or a different process). In this scenario+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.+--+-- == New Structures+--+-- -   Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo':+--+--     -   'DeviceQueueGlobalPriorityCreateInfoKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceGlobalPriorityQueryFeaturesKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':+--+--     -   'QueueFamilyGlobalPriorityPropertiesKHR'+--+-- == New Enums+--+-- -   'QueueGlobalPriorityKHR'+--+-- == New Enum Constants+--+-- -   'KHR_GLOBAL_PRIORITY_EXTENSION_NAME'+--+-- -   'KHR_GLOBAL_PRIORITY_SPEC_VERSION'+--+-- -   'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.Result.Result':+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'+--+-- == Issues+--+-- 1) Can we additionally query whether a caller is permitted to acquire a+-- specific global queue priority in this extension?+--+-- __RESOLVED__: No. Whether a caller has enough privilege goes with the+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call.+--+-- 2) If more than 1 queue using global priority is requested, is there a+-- good way to know which queue is failing the device creation?+--+-- __RESOLVED__: No. There is not a good way at this moment, and it is also+-- not quite actionable for the applications to know that because the+-- information may not be accurate. Queue creation can fail because of+-- runtime constraints like insufficient privilege or lack of resource, and+-- the failure is not necessarily tied to that particular queue+-- configuration requested.+--+-- == Version History+--+-- -   Revision 1, 2021-10-22 (Tobias Hector)+--+--     -   Initial draft+--+-- == See Also+--+-- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR',+-- 'DeviceQueueGlobalPriorityCreateInfoKHR',+-- 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR',+-- 'QueueFamilyGlobalPriorityPropertiesKHR', 'QueueGlobalPriorityKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_global_priority Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_global_priority  ( DeviceQueueGlobalPriorityCreateInfoKHR+                                                 , PhysicalDeviceGlobalPriorityQueryFeaturesKHR+                                                 , QueueFamilyGlobalPriorityPropertiesKHR+                                                 , QueueGlobalPriorityKHR+                                                 ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceQueueGlobalPriorityCreateInfoKHR++instance ToCStruct DeviceQueueGlobalPriorityCreateInfoKHR+instance Show DeviceQueueGlobalPriorityCreateInfoKHR++instance FromCStruct DeviceQueueGlobalPriorityCreateInfoKHR+++data PhysicalDeviceGlobalPriorityQueryFeaturesKHR++instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR+instance Show PhysicalDeviceGlobalPriorityQueryFeaturesKHR++instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR+++data QueueFamilyGlobalPriorityPropertiesKHR++instance ToCStruct QueueFamilyGlobalPriorityPropertiesKHR+instance Show QueueFamilyGlobalPriorityPropertiesKHR++instance FromCStruct QueueFamilyGlobalPriorityPropertiesKHR+++data QueueGlobalPriorityKHR+
src/Vulkan/Extensions/VK_KHR_image_format_list.hs view
@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_list Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_image_format_list Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs view
@@ -123,7 +123,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_imageless_framebuffer Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_imageless_framebuffer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_incremental_present.hs view
@@ -158,7 +158,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot view
@@ -158,7 +158,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance1.hs view
@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance1 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance2.hs view
@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance3.hs view
@@ -111,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance3 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance4.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.1 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Piers Daniell@@ -33,6 +38,8 @@ -- -- [__Interactions and External Dependencies__] --+--     -   Promoted to Vulkan 1.3 Core+-- --     -   Requires SPIR-V 1.2 for @LocalSizeId@ -- -- [__Contributors__]@@ -68,7 +75,7 @@ --     its handle valid while the created object is in use. -- -- -   Add a new---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize> --     implementation-defined limit for the maximum size --     'Vulkan.Core10.Handles.Buffer' that /can/ be created. --@@ -134,14 +141,20 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR'+--     -   'STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR'+--     -   'STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Issues -- -- None.@@ -168,568 +181,81 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_maintenance4  ( getDeviceBufferMemoryRequirementsKHR+module Vulkan.Extensions.VK_KHR_maintenance4  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR+                                              , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR+                                              , pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR+                                              , pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR+                                              , getDeviceBufferMemoryRequirementsKHR                                               , getDeviceImageMemoryRequirementsKHR                                               , getDeviceImageSparseMemoryRequirementsKHR-                                              , DeviceBufferMemoryRequirementsKHR(..)-                                              , DeviceImageMemoryRequirementsKHR(..)-                                              , PhysicalDeviceMaintenance4FeaturesKHR(..)-                                              , PhysicalDeviceMaintenance4PropertiesKHR(..)+                                              , DeviceBufferMemoryRequirementsKHR+                                              , DeviceImageMemoryRequirementsKHR+                                              , PhysicalDeviceMaintenance4FeaturesKHR+                                              , PhysicalDeviceMaintenance4PropertiesKHR                                               , KHR_MAINTENANCE_4_SPEC_VERSION                                               , pattern KHR_MAINTENANCE_4_SPEC_VERSION                                               , KHR_MAINTENANCE_4_EXTENSION_NAME                                               , pattern KHR_MAINTENANCE_4_EXTENSION_NAME                                               ) where -import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Exception.Base (bracket)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Marshal.Alloc (callocBytes)-import Foreign.Marshal.Alloc (free)-import GHC.IO (throwIO)-import GHC.Ptr (castPtr)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Data.Vector (generateM)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.CStruct.Extends (forgetExtensions)-import Vulkan.CStruct.Extends (peekSomeCStruct)-import Vulkan.CStruct.Extends (withSomeCStruct)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Buffer (BufferCreateInfo)-import Vulkan.Core10.Handles (Device)-import Vulkan.Core10.Handles (Device(..))-import Vulkan.Core10.Handles (Device(Device))-import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceBufferMemoryRequirementsKHR))-import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageMemoryRequirementsKHR))-import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageSparseMemoryRequirementsKHR))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.Core10.Handles (Device_T)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)-import Vulkan.Core10.Image (ImageCreateInfo)-import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)-import Vulkan.CStruct.Extends (PeekChain)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.CStruct.Extends (SomeStruct(..))-import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (SparseImageMemoryRequirements2)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetDeviceBufferMemoryRequirementsKHR-  :: FunPtr (Ptr Device_T -> Ptr DeviceBufferMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceBufferMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO ()+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceBufferMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceImageMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceImageSparseMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES --- | vkGetDeviceBufferMemoryRequirementsKHR - Returns the memory requirements--- for specified Vulkan object------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Handles.Device', 'DeviceBufferMemoryRequirementsKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'-getDeviceBufferMemoryRequirementsKHR :: forall a io-                                      . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)-                                     => -- | @device@ is the logical device intended to own the buffer.-                                        ---                                        -- #VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter# @device@-                                        -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle-                                        Device-                                     -> -- | @pInfo@ is a pointer to a 'DeviceBufferMemoryRequirementsKHR' structure-                                        -- containing parameters required for the memory requirements query.-                                        ---                                        -- #VUID-vkGetDeviceBufferMemoryRequirementsKHR-pInfo-parameter# @pInfo@-                                        -- /must/ be a valid pointer to a valid 'DeviceBufferMemoryRequirementsKHR'-                                        -- structure-                                        ("info" ::: DeviceBufferMemoryRequirementsKHR)-                                     -> io (MemoryRequirements2 a)-getDeviceBufferMemoryRequirementsKHR device info = liftIO . evalContT $ do-  let vkGetDeviceBufferMemoryRequirementsKHRPtr = pVkGetDeviceBufferMemoryRequirementsKHR (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkGetDeviceBufferMemoryRequirementsKHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceBufferMemoryRequirementsKHR is null" Nothing Nothing-  let vkGetDeviceBufferMemoryRequirementsKHR' = mkVkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHRPtr-  pInfo <- ContT $ withCStruct (info)-  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetDeviceBufferMemoryRequirementsKHR" (vkGetDeviceBufferMemoryRequirementsKHR' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))-  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements-  pure $ (pMemoryRequirements) +-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetDeviceImageMemoryRequirementsKHR-  :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO () --- | vkGetDeviceImageMemoryRequirementsKHR - Returns the memory requirements--- for specified Vulkan object------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirementsKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'-getDeviceImageMemoryRequirementsKHR :: forall a io-                                     . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)-                                    => -- | @device@ is the logical device intended to own the image.-                                       ---                                       -- #VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter# @device@-                                       -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle-                                       Device-                                    -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirementsKHR' structure-                                       -- containing parameters required for the memory requirements query.-                                       ---                                       -- #VUID-vkGetDeviceImageMemoryRequirementsKHR-pInfo-parameter# @pInfo@-                                       -- /must/ be a valid pointer to a valid 'DeviceImageMemoryRequirementsKHR'-                                       -- structure-                                       ("info" ::: DeviceImageMemoryRequirementsKHR)-                                    -> io (MemoryRequirements2 a)-getDeviceImageMemoryRequirementsKHR device info = liftIO . evalContT $ do-  let vkGetDeviceImageMemoryRequirementsKHRPtr = pVkGetDeviceImageMemoryRequirementsKHR (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkGetDeviceImageMemoryRequirementsKHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageMemoryRequirementsKHR is null" Nothing Nothing-  let vkGetDeviceImageMemoryRequirementsKHR' = mkVkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHRPtr-  pInfo <- ContT $ withCStruct (info)-  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetDeviceImageMemoryRequirementsKHR" (vkGetDeviceImageMemoryRequirementsKHR' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))-  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements-  pure $ (pMemoryRequirements)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR"+pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS  -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetDeviceImageSparseMemoryRequirementsKHR-  :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR"+pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS --- | vkGetDeviceImageSparseMemoryRequirementsKHR - Query the memory--- requirements for a sparse image------ == Valid Usage (Implicit)------ -   #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter#---     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle------ -   #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-pInfo-parameter#---     @pInfo@ /must/ be a valid pointer to a valid---     'DeviceImageMemoryRequirementsKHR' structure------ -   #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-pSparseMemoryRequirementCount-parameter#---     @pSparseMemoryRequirementCount@ /must/ be a valid pointer to a---     @uint32_t@ value------ -   #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-pSparseMemoryRequirements-parameter#---     If the value referenced by @pSparseMemoryRequirementCount@ is not---     @0@, and @pSparseMemoryRequirements@ is not @NULL@,---     @pSparseMemoryRequirements@ /must/ be a valid pointer to an array of---     @pSparseMemoryRequirementCount@---     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'---     structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirementsKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'-getDeviceImageSparseMemoryRequirementsKHR :: forall io-                                           . (MonadIO io)-                                          => -- | @device@ is the logical device intended to own the image.-                                             Device-                                          -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirementsKHR' structure-                                             -- containing parameters required for the memory requirements query.-                                             ("info" ::: DeviceImageMemoryRequirementsKHR)-                                          -> io (("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2))-getDeviceImageSparseMemoryRequirementsKHR device info = liftIO . evalContT $ do-  let vkGetDeviceImageSparseMemoryRequirementsKHRPtr = pVkGetDeviceImageSparseMemoryRequirementsKHR (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkGetDeviceImageSparseMemoryRequirementsKHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageSparseMemoryRequirementsKHR is null" Nothing Nothing-  let vkGetDeviceImageSparseMemoryRequirementsKHR' = mkVkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHRPtr-  let device' = deviceHandle (device)-  pInfo <- ContT $ withCStruct (info)-  pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirementsKHR" (vkGetDeviceImageSparseMemoryRequirementsKHR' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr))-  pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount-  pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements2 ((fromIntegral (pSparseMemoryRequirementCount)) * 64)) free-  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 64) :: Ptr SparseImageMemoryRequirements2) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]-  lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirementsKHR" (vkGetDeviceImageSparseMemoryRequirementsKHR' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements)))-  pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount-  pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements2 (((pPSparseMemoryRequirements) `advancePtrBytes` (64 * (i)) :: Ptr SparseImageMemoryRequirements2)))-  pure $ (pSparseMemoryRequirements') +-- No documentation found for TopLevel "vkGetDeviceBufferMemoryRequirementsKHR"+getDeviceBufferMemoryRequirementsKHR = getDeviceBufferMemoryRequirements --- | VkDeviceBufferMemoryRequirementsKHR - (None)------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Buffer.BufferCreateInfo',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getDeviceBufferMemoryRequirementsKHR'-data DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirementsKHR-  { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Buffer.BufferCreateInfo'-    -- structure containing parameters affecting creation of the buffer to-    -- query.-    ---    -- #VUID-VkDeviceBufferMemoryRequirementsKHR-pCreateInfo-parameter#-    -- @pCreateInfo@ /must/ be a valid pointer to a valid-    -- 'Vulkan.Core10.Buffer.BufferCreateInfo' structure-    createInfo :: SomeStruct BufferCreateInfo }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DeviceBufferMemoryRequirementsKHR)-#endif-deriving instance Show DeviceBufferMemoryRequirementsKHR -instance ToCStruct DeviceBufferMemoryRequirementsKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p DeviceBufferMemoryRequirementsKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo (createInfo) (cont . castPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''-    lift $ f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo ((SomeStruct zero)) (cont . castPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''-    lift $ f+-- No documentation found for TopLevel "vkGetDeviceImageMemoryRequirementsKHR"+getDeviceImageMemoryRequirementsKHR = getDeviceImageMemoryRequirements -instance FromCStruct DeviceBufferMemoryRequirementsKHR where-  peekCStruct p = do-    pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _))))-    pure $ DeviceBufferMemoryRequirementsKHR-             pCreateInfo -instance Zero DeviceBufferMemoryRequirementsKHR where-  zero = DeviceBufferMemoryRequirementsKHR-           (SomeStruct zero)+-- No documentation found for TopLevel "vkGetDeviceImageSparseMemoryRequirementsKHR"+getDeviceImageSparseMemoryRequirementsKHR = getDeviceImageSparseMemoryRequirements  --- | VkDeviceImageMemoryRequirementsKHR - (None)------ == Valid Usage------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416# The---     @pCreateInfo@::@pNext@ chain /must/ not contain a---     'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'---     structure------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If---     @pCreateInfo@::@flags@ has---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'---     set then @planeAspect@ /must/ not be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06418# If---     @pCreateInfo@::@flags@ has---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'---     set then @planeAspect@ /must/ not be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419# If---     @pCreateInfo@::@flags@ has---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'---     set and if the @pCreateInfo@::@tiling@ is---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then---     @planeAspect@ /must/ be a single valid /format plane/ for the image---     (that is, for a two-plane image @planeAspect@ /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     and for a three-plane image @planeAspect@ /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'---     or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT')------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420# If---     @pCreateInfo@::@flags@ has---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'---     set and the @pCreateInfo@::@tiling@ is---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',---     then @planeAspect@ /must/ be a single valid /memory plane/ for the---     image (that is, @aspectMask@ /must/ specify a plane index that is---     less than the---     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@---     associated with the image’s @format@ and---     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@)------ == Valid Usage (Implicit)------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-sType-sType# @sType@ /must/---     be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR'------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pNext-pNext# @pNext@ /must/---     be @NULL@------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-parameter#---     @pCreateInfo@ /must/ be a valid pointer to a valid---     'Vulkan.Core10.Image.ImageCreateInfo' structure------ -   #VUID-VkDeviceImageMemoryRequirementsKHR-planeAspect-parameter#---     @planeAspect@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',--- 'Vulkan.Core10.Image.ImageCreateInfo',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getDeviceImageMemoryRequirementsKHR',--- 'getDeviceImageSparseMemoryRequirementsKHR'-data DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirementsKHR-  { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Image.ImageCreateInfo'-    -- structure containing parameters affecting creation of the image to-    -- query.-    createInfo :: SomeStruct ImageCreateInfo-  , -- | @planeAspect@ is a-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value-    -- specifying the aspect corresponding to the image plane to query. This-    -- parameter is ignored unless @pCreateInfo@::@flags@ has-    -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' or-    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'-    -- set.-    planeAspect :: ImageAspectFlagBits-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DeviceImageMemoryRequirementsKHR)-#endif-deriving instance Show DeviceImageMemoryRequirementsKHR+-- No documentation found for TopLevel "VkDeviceBufferMemoryRequirementsKHR"+type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements -instance ToCStruct DeviceImageMemoryRequirementsKHR where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p DeviceImageMemoryRequirementsKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo (createInfo) (cont . castPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (planeAspect)-    lift $ f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo ((SomeStruct zero)) (cont . castPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''-    lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (zero)-    lift $ f -instance FromCStruct DeviceImageMemoryRequirementsKHR where-  peekCStruct p = do-    pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _))))-    planeAspect <- peek @ImageAspectFlagBits ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits))-    pure $ DeviceImageMemoryRequirementsKHR-             pCreateInfo planeAspect--instance Zero DeviceImageMemoryRequirementsKHR where-  zero = DeviceImageMemoryRequirementsKHR-           (SomeStruct zero)-           zero+-- No documentation found for TopLevel "VkDeviceImageMemoryRequirementsKHR"+type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements  --- | VkPhysicalDeviceMaintenance4FeaturesKHR - Structure describing whether--- the implementation supports maintenance4 functionality------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceMaintenance4FeaturesKHR' 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. 'PhysicalDeviceMaintenance4FeaturesKHR' /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_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4FeaturesKHR-  { -- | #features-maintenance4# @maintenance4@ indicates that the implementation-    -- supports the following:-    ---    -- -   The application /may/ destroy a-    --     'Vulkan.Core10.Handles.PipelineLayout' object immediately after-    --     using it to create another object.-    ---    -- -   @LocalSizeId@ /can/ be used as an alternative to @LocalSize@ to-    --     specify the local workgroup size with specialization constants.-    ---    -- -   Images created with identical creation parameters will always have-    --     the same alignment requirements.-    ---    -- -   The size memory requirement of a buffer or image is never greater-    --     than that of another buffer or image created with a greater or equal-    --     size.-    ---    -- -   Push constants do not have to be initialized before they are-    --     dynamically accessed.-    ---    -- -   The interface matching rules allow a larger output vector to match-    --     with a smaller input vector, with additional values being discarded.-    maintenance4 :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMaintenance4FeaturesKHR)-#endif-deriving instance Show PhysicalDeviceMaintenance4FeaturesKHR--instance ToCStruct PhysicalDeviceMaintenance4FeaturesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceMaintenance4FeaturesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance4))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDeviceMaintenance4FeaturesKHR where-  peekCStruct p = do-    maintenance4 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceMaintenance4FeaturesKHR-             (bool32ToBool maintenance4)--instance Storable PhysicalDeviceMaintenance4FeaturesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceMaintenance4FeaturesKHR where-  zero = PhysicalDeviceMaintenance4FeaturesKHR-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance4FeaturesKHR"+type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features  --- | VkPhysicalDeviceMaintenance4PropertiesKHR - Structure describing various--- implementation-defined properties introduced with VK_KHR_maintenance4------ = Description------ If the 'PhysicalDeviceMaintenance4PropertiesKHR' 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_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4PropertiesKHR-  { -- | #limits-maxBufferSize# @maxBufferSize@ is the maximum size-    -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.-    maxBufferSize :: DeviceSize }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMaintenance4PropertiesKHR)-#endif-deriving instance Show PhysicalDeviceMaintenance4PropertiesKHR--instance ToCStruct PhysicalDeviceMaintenance4PropertiesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceMaintenance4PropertiesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (maxBufferSize)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)-    f--instance FromCStruct PhysicalDeviceMaintenance4PropertiesKHR where-  peekCStruct p = do-    maxBufferSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))-    pure $ PhysicalDeviceMaintenance4PropertiesKHR-             maxBufferSize--instance Storable PhysicalDeviceMaintenance4PropertiesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceMaintenance4PropertiesKHR where-  zero = PhysicalDeviceMaintenance4PropertiesKHR-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance4PropertiesKHR"+type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties   type KHR_MAINTENANCE_4_SPEC_VERSION = 2
− src/Vulkan/Extensions/VK_KHR_maintenance4.hs-boot
@@ -1,215 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_maintenance4 - device extension------ == VK_KHR_maintenance4------ [__Name String__]---     @VK_KHR_maintenance4@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     414------ [__Revision__]---     2------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.1------ [__Contact__]------     -   Piers Daniell---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance4] @pdaniell-nv%0A<<Here describe the issue or question you have about the VK_KHR_maintenance4 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2021-10-25------ [__Interactions and External Dependencies__]------     -   Requires SPIR-V 1.2 for @LocalSizeId@------ [__Contributors__]------     -   Lionel Duc, NVIDIA------     -   Jason Ekstrand, Intel------     -   Spencer Fricke, Samsung------     -   Tobias Hector, AMD------     -   Lionel Landwerlin, Intel------     -   Graeme Leese, Broadcom------     -   Tom Olson, Arm------     -   Stu Smith, AMD------     -   Yiwei Zhang, Google------ == Description------ @VK_KHR_maintenance4@ adds a collection of minor features, none of which--- would warrant an entire extension of their own.------ The new features are as follows:------ -   Allow the application to destroy their---     'Vulkan.Core10.Handles.PipelineLayout' object immediately after it---     was used to create another object. It is no longer necessary to keep---     its handle valid while the created object is in use.------ -   Add a new---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize>---     implementation-defined limit for the maximum size---     'Vulkan.Core10.Handles.Buffer' that /can/ be created.------ -   Add support for the SPIR-V 1.2 @LocalSizeId@ execution mode, which---     can be used as an alternative to @LocalSize@ to specify the local---     workgroup size with specialization constants.------ -   Add a guarantee that images created with identical creation---     parameters will always have the same alignment requirements.------ -   Add new 'getDeviceBufferMemoryRequirementsKHR',---     'getDeviceImageMemoryRequirementsKHR', and---     'getDeviceImageSparseMemoryRequirementsKHR' to allow the application---     to query the image memory requirements without having to create an---     image object and query it.------ -   Relax the requirement that push constants must be initialized before---     they are dynamically accessed.------ -   Relax the interface matching rules to allow a larger output vector---     to match with a smaller input vector, with additional values being---     discarded.------ -   Add a guarantee for buffer memory requirement that the size memory---     requirement is never greater than the result of aligning create size---     with the alignment memory requirement.------ == New Commands------ -   'getDeviceBufferMemoryRequirementsKHR'------ -   'getDeviceImageMemoryRequirementsKHR'------ -   'getDeviceImageSparseMemoryRequirementsKHR'------ == New Structures------ -   'DeviceBufferMemoryRequirementsKHR'------ -   'DeviceImageMemoryRequirementsKHR'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceMaintenance4FeaturesKHR'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------     -   'PhysicalDeviceMaintenance4PropertiesKHR'------ == New Enum Constants------ -   'KHR_MAINTENANCE_4_EXTENSION_NAME'------ -   'KHR_MAINTENANCE_4_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits':------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR'------ == Issues------ None.------ == Version History------ -   Revision 1, 2021-08-18 (Piers Daniell)------     -   Internal revisions------ -   Revision 2, 2021-10-25 (Yiwei Zhang)------     -   More guarantees on buffer memory requirements------ == See Also------ 'DeviceBufferMemoryRequirementsKHR', 'DeviceImageMemoryRequirementsKHR',--- 'PhysicalDeviceMaintenance4FeaturesKHR',--- 'PhysicalDeviceMaintenance4PropertiesKHR',--- 'getDeviceBufferMemoryRequirementsKHR',--- 'getDeviceImageMemoryRequirementsKHR',--- 'getDeviceImageSparseMemoryRequirementsKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_maintenance4  ( DeviceBufferMemoryRequirementsKHR-                                              , DeviceImageMemoryRequirementsKHR-                                              , PhysicalDeviceMaintenance4FeaturesKHR-                                              , PhysicalDeviceMaintenance4PropertiesKHR-                                              ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DeviceBufferMemoryRequirementsKHR--instance ToCStruct DeviceBufferMemoryRequirementsKHR-instance Show DeviceBufferMemoryRequirementsKHR--instance FromCStruct DeviceBufferMemoryRequirementsKHR---data DeviceImageMemoryRequirementsKHR--instance ToCStruct DeviceImageMemoryRequirementsKHR-instance Show DeviceImageMemoryRequirementsKHR--instance FromCStruct DeviceImageMemoryRequirementsKHR---data PhysicalDeviceMaintenance4FeaturesKHR--instance ToCStruct PhysicalDeviceMaintenance4FeaturesKHR-instance Show PhysicalDeviceMaintenance4FeaturesKHR--instance FromCStruct PhysicalDeviceMaintenance4FeaturesKHR---data PhysicalDeviceMaintenance4PropertiesKHR--instance ToCStruct PhysicalDeviceMaintenance4PropertiesKHR-instance Show PhysicalDeviceMaintenance4PropertiesKHR--instance FromCStruct PhysicalDeviceMaintenance4PropertiesKHR-
src/Vulkan/Extensions/VK_KHR_multiview.hs view
@@ -66,7 +66,7 @@ -- and gives implementations freedom to render the views in the most -- efficient way possible. This is done with a multiview configuration -- specified during--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass render pass>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass> -- creation with the -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo' -- passed into 'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pNext@.@@ -124,11 +124,11 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewindex ViewIndex>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewindex ViewIndex> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView> -- -- == Version History --@@ -145,7 +145,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_multiview Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -116,7 +116,7 @@ --     -   'QueryPoolPerformanceCreateInfoKHR' -- -- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',---     'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- --     -   'PerformanceQuerySubmitInfoKHR' --@@ -473,7 +473,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1203,7 +1203,7 @@ -- -- -   #VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools> --     feature /must/ be enabled -- -- -   #VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321#
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -116,7 +116,7 @@ --     -   'QueryPoolPerformanceCreateInfoKHR' -- -- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',---     'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- --     -   'PerformanceQuerySubmitInfoKHR' --@@ -473,7 +473,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -312,7 +312,7 @@ -- == Valid Usage -- -- -   #VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo> --     /must/ be enabled -- -- -   #VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271#@@ -410,7 +410,7 @@ -- == Valid Usage -- -- -   #VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo> --     /must/ be enabled -- -- -   #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273#@@ -519,7 +519,7 @@ -- == Valid Usage -- -- -   #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo> --     /must/ be enabled -- -- -   #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277#
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot view
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs view
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot view
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,13 +203,13 @@   { -- | #features-constantAlphaColorBlendFactors#     -- @constantAlphaColorBlendFactors@ indicates whether this implementation     -- supports constant /alpha/-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendfactors>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors>     -- used as source or destination /color/-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending>.     constantAlphaColorBlendFactors :: Bool   , -- | #features-events# @events@ indicates whether this implementation     -- supports synchronization using-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-events>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events>.     events :: Bool   , -- | #features-imageViewFormatReinterpretation#     -- @imageViewFormatReinterpretation@ indicates whether this implementation@@ -236,56 +236,56 @@   , -- | #features-mutableComparisonSamplers# @mutableComparisonSamplers@     -- indicates whether this implementation allows descriptors with comparison     -- samplers to be-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates updated>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates updated>.     mutableComparisonSamplers :: Bool   , -- | #features-pointPolygons# @pointPolygons@ indicates whether this     -- implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>     -- using a /point/-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-polygonmode>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode>.     pointPolygons :: Bool   , -- | #features-samplerMipLodBias# @samplerMipLodBias@ indicates whether this     -- implementation supports setting a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value>     -- when-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers creating a sampler>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers creating a sampler>.     samplerMipLodBias :: Bool   , -- | #features-separateStencilMaskRef# @separateStencilMaskRef@ indicates     -- whether this implementation supports separate front and back-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil>     -- reference values.     separateStencilMaskRef :: Bool   , -- | #features-shaderSampleRateInterpolationFunctions#     -- @shaderSampleRateInterpolationFunctions@ indicates whether this     -- implementation supports fragment shaders which use the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunction InterpolationFunction>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunction InterpolationFunction>     -- capability and the extended instructions @InterpolateAtCentroid@,     -- @InterpolateAtOffset@, and @InterpolateAtSample@ from the @GLSL.std.450@     -- extended instruction set. This member is only meaningful if the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>     -- feature is supported.     shaderSampleRateInterpolationFunctions :: Bool   , -- | #features-tessellationIsolines# @tessellationIsolines@ indicates whether     -- this implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output>     -- from the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>     -- stage of a graphics pipeline. This member is only meaningful if-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>     -- are supported.     tessellationIsolines :: Bool   , -- | #features-tessellationPointMode# @tessellationPointMode@ indicates     -- whether this implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation-point-mode point output>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-point-mode point output>     -- from the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>     -- stage of a graphics pipeline. This member is only meaningful if-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>     -- are supported.     tessellationPointMode :: Bool   , -- | #features-triangleFans# @triangleFans@ indicates whether this     -- implementation supports-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-fans>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans>     -- primitive topology.     triangleFans :: Bool   , -- | #features-vertexAttributeAccessBeyondStride#
src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_present_id.hs view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -219,7 +219,7 @@ -- queued by a call to -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', an identifier -- needs to be associated with them. When the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-presentId presentId>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId> -- feature is enabled, applications /can/ include the 'PresentIdKHR' -- structure in the @pNext@ chain of the -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure to supply
src/Vulkan/Extensions/VK_KHR_present_id.hs-boot view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_present_wait.hs view
@@ -135,7 +135,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -277,7 +277,7 @@ --     in the retired state -- -- -   #VUID-vkWaitForPresentKHR-presentWait-06234# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-presentWait presentWait>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentWait presentWait> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot view
@@ -135,7 +135,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -208,15 +208,15 @@ -- When a command buffer begins recording, all push descriptors are -- undefined. Push descriptors /can/ be updated incrementally and cause -- shaders to use the updated descriptors for subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands> -- with the pipeline type set by @pipelineBindPoint@ until the descriptor -- is overwritten, or else until the set is disturbed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>. -- When the set is disturbed or push descriptors with a different -- descriptor set layout are set, all push descriptors are undefined. -- -- Push descriptors that are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-staticuse statically used> -- by a pipeline /must/ not be undefined at the time that a drawing or -- dispatching command is recorded to execute using that pipeline. This -- includes immutable sampler descriptors, which /must/ be pushed before
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_ray_query.hs view
@@ -167,9 +167,9 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Sample Code --@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot view
@@ -167,9 +167,9 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Sample Code --@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -44,13 +44,13 @@ --         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing> -- --     -   This extension interacts with---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2> --         and @VK_KHR_vulkan_memory_model@, adding the---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-call-related shader-call-related>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-related shader-call-related> --         relation of invocations,---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-call-order shader-call-order>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-order shader-call-order> --         partial order of dynamic instances of instructions, and the---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR> --         scope. -- --     -   This extension interacts with @VK_KHR_pipeline_library@,@@ -287,43 +287,43 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR> -- -- -   (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Issues --@@ -345,7 +345,7 @@ -- -- -   removed vkCompileDeferredNV compilation functionality and replaced --     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations deferred host operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations> --     interactions for ray tracing -- -- -   added 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure@@ -370,17 +370,17 @@ --     device build -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-library pipeline library>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library pipeline library> --     support for ray tracing -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees> -- -- -   added no-null-shader pipeline flags --     (@VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_*_SHADERS_BIT_KHR@) -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions> --     with ray tracing and define how subgroups work and can be repacked -- -- (2) Can you give a more detailed comparision of differences and@@ -706,7 +706,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -840,7 +840,7 @@ import Vulkan.Core10.Handles (PipelineCache) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)@@ -904,7 +904,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdTraceRaysKHR-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -960,7 +960,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdTraceRaysKHR-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -968,7 +968,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdTraceRaysKHR-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -1626,7 +1626,7 @@ -- -- -   #VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903# If --     @pipelineCache@ was created with---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', --     host access to @pipelineCache@ /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> --@@ -1640,13 +1640,13 @@ --     @deferredOperation@ /must/ be complete -- -- -   #VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> --     feature /must/ be enabled -- -- -   #VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587# If --     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', --     the @flags@ member of elements of @pCreateInfos@ /must/ not include---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- == Valid Usage (Implicit) --@@ -1697,7 +1697,7 @@ -- --     -   'Vulkan.Core10.Enums.Result.OPERATION_NOT_DEFERRED_KHR' -----     -   'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT' -- -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>] --@@ -1720,12 +1720,12 @@                                 Device                              -> -- | @deferredOperation@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or the                                 -- handle of a valid 'Vulkan.Extensions.Handles.DeferredOperationKHR'-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>                                 -- object for this command.                                 DeferredOperationKHR                              -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',                                 -- indicating that pipeline caching is disabled, or the handle of a valid-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>                                 -- object, in which case use of that cache is enabled for the duration of                                 -- the command.                                 PipelineCache@@ -1733,7 +1733,7 @@                                 -- 'RayTracingPipelineCreateInfoKHR' structures.                                 ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoKHR))                              -> -- | @pAllocator@ controls host memory allocation as described in the-                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (Result, ("pipelines" ::: Vector Pipeline))@@ -1810,7 +1810,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1866,7 +1866,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -1874,7 +1874,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -2210,7 +2210,7 @@ -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect> --     feature /must/ be enabled -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951#@@ -2398,7 +2398,7 @@ -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, the stack size is computed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>. -- -- == Valid Usage --@@ -2643,7 +2643,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- When -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'@@ -2669,7 +2669,7 @@ -- The default stack size for a pipeline if -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR' -- is not provided is computed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>. -- -- == Valid Usage --@@ -2724,9 +2724,9 @@ --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl> --     feature is not enabled, @flags@ /must/ not include---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     or---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425# If @flags@ does --     not include@@ -2845,20 +2845,20 @@ -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling> --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling> --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR',---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay rayTracingPipelineShaderGroupHandleCaptureReplay>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay rayTracingPipelineShaderGroupHandleCaptureReplay> --     /must/ be enabled -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599#@@ -2889,7 +2889,7 @@ -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext# @pNext@ /must/ --     be @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -2964,7 +2964,7 @@     -- pipeline.     groups :: Vector RayTracingShaderGroupCreateInfoKHR   , -- | @maxPipelineRayRecursionDepth@ is the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>     -- of shaders executed by this pipeline.     maxPipelineRayRecursionDepth :: Word32   , -- | @pLibraryInfo@ is a pointer to a@@ -3003,7 +3003,7 @@   getNext RayTracingPipelineCreateInfoKHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoKHR e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | otherwise = Nothing  instance (Extendss RayTracingPipelineCreateInfoKHR es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoKHR es) where@@ -3105,7 +3105,7 @@ -- -   #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether --     the implementation supports the ray tracing pipeline functionality. --     See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing Ray Tracing>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing>. -- -- -   #features-rayTracingPipelineShaderGroupHandleCaptureReplay# --     @rayTracingPipelineShaderGroupHandleCaptureReplay@ indicates whether@@ -3128,7 +3128,7 @@ -- -   #features-rayTraversalPrimitiveCulling# --     @rayTraversalPrimitiveCulling@ indicates whether the implementation --     supports---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>. -- -- If the 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure is -- included in the @pNext@ chain of the@@ -3508,7 +3508,7 @@ -- bytes used by any block declared in the @HitAttributeKHR@ storage class. -- As variables in these storage classes do not have explicit offsets, the -- size should be calculated as if each variable has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment> -- equal to the largest scalar alignment of any of the block’s members. -- -- Note
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot view
@@ -44,13 +44,13 @@ --         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing> -- --     -   This extension interacts with---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2> --         and @VK_KHR_vulkan_memory_model@, adding the---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-call-related shader-call-related>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-related shader-call-related> --         relation of invocations,---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-call-order shader-call-order>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-order shader-call-order> --         partial order of dynamic instances of instructions, and the---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR>+--         <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR> --         scope. -- --     -   This extension interacts with @VK_KHR_pipeline_library@,@@ -287,43 +287,43 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR> -- -- -   (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Issues --@@ -345,7 +345,7 @@ -- -- -   removed vkCompileDeferredNV compilation functionality and replaced --     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations deferred host operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations> --     interactions for ray tracing -- -- -   added 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure@@ -370,17 +370,17 @@ --     device build -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-library pipeline library>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library pipeline library> --     support for ray tracing -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees> -- -- -   added no-null-shader pipeline flags --     (@VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_*_SHADERS_BIT_KHR@) -- -- -   added---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions> --     with ray tracing and define how subgroups work and can be repacked -- -- (2) Can you give a more detailed comparision of differences and@@ -706,7 +706,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs view
@@ -54,7 +54,7 @@ -- For example, placing a vector of three floats at an offset of 16×N + 4. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-layout Offset and Stride Assignment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-layout Offset and Stride Assignment> -- for details. -- -- == Promotion to Vulkan 1.1@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_relaxed_block_layout Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_relaxed_block_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs view
@@ -144,7 +144,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_mirror_clamp_to_edge Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_sampler_mirror_clamp_to_edge Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -392,7 +392,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs view
@@ -128,7 +128,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs view
@@ -93,7 +93,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics> -- -- == Version History --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_atomic_int64 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_atomic_int64 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_clock.hs view
@@ -86,7 +86,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR> -- -- == Version History --@@ -101,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot view
@@ -86,7 +86,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR> -- -- == Version History --@@ -101,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -96,7 +96,7 @@ -- -- All functionality in this extension is included in core Vulkan 1.1, -- however a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderDrawParameters feature bit was added>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderDrawParameters feature bit was added> -- to distinguish whether it is actually available or not. -- -- == New Enum Constants@@ -107,15 +107,15 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-baseinstance BaseInstance>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-baseinstance BaseInstance> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-basevertex BaseVertex>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-basevertex BaseVertex> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-drawindex DrawIndex>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-drawindex DrawIndex> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters> -- -- == Issues --@@ -149,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_draw_parameters Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_draw_parameters Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs view
@@ -78,7 +78,7 @@ -- requirements for half-precision floating-point SPIR-V operations. This -- extension does not enable use of 8-bit integer types or 16-bit -- floating-point types in any--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-iointerfaces shader input and output interfaces>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-iointerfaces shader input and output interfaces> -- and therefore does not supersede the @VK_KHR_8bit_storage@ or -- @VK_KHR_16bit_storage@ extensions. --@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float16_int8 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_float16_int8 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs view
@@ -105,15 +105,15 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormPreserve DenormPreserve>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormPreserve DenormPreserve> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormFlushToZero DenormFlushToZero>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormFlushToZero DenormFlushToZero> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SignedZeroInfNanPreserve SignedZeroInfNanPreserve>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SignedZeroInfNanPreserve SignedZeroInfNanPreserve> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTE RoundingModeRTE>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTE RoundingModeRTE> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ> -- -- == Issues --@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float_controls Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_float_controls Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Kevin Petit@@ -38,6 +43,8 @@ -- -- [__Interactions and External Dependencies__] --+--     -   Promoted to Vulkan 1.3 Core+-- --     -   This extension requires --         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html SPV_KHR_integer_dot_product>. --@@ -106,19 +113,25 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR> -- -- == Version History --@@ -134,488 +147,39 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_shader_integer_dot_product  ( PhysicalDeviceShaderIntegerDotProductFeaturesKHR(..)-                                                            , PhysicalDeviceShaderIntegerDotProductPropertiesKHR(..)+module Vulkan.Extensions.VK_KHR_shader_integer_dot_product  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR+                                                            , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR+                                                            , PhysicalDeviceShaderIntegerDotProductFeaturesKHR+                                                            , PhysicalDeviceShaderIntegerDotProductPropertiesKHR                                                             , KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION                                                             , pattern KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION                                                             , KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME                                                             , pattern KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME                                                             ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR))--- | VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR - Structure--- describing integer dot product features that can be supported by an--- implementation------ = Members------ The members of the 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR'--- structure describe the following features:------ = Description------ If the 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR' 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. 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR' /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_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeaturesKHR-  { -- | #features-shaderIntegerDotProduct# @shaderIntegerDotProduct@ specifies-    -- whether shader modules /can/ declare the @DotProductInputAllKHR@,-    -- @DotProductInput4x8BitKHR@, @DotProductInput4x8BitPackedKHR@ and-    -- @DotProductKHR@ capabilities.-    shaderIntegerDotProduct :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceShaderIntegerDotProductFeaturesKHR+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures)+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES -instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceShaderIntegerDotProductFeaturesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderIntegerDotProduct))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR where-  peekCStruct p = do-    shaderIntegerDotProduct <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceShaderIntegerDotProductFeaturesKHR-             (bool32ToBool shaderIntegerDotProduct)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES -instance Storable PhysicalDeviceShaderIntegerDotProductFeaturesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceShaderIntegerDotProductFeaturesKHR where-  zero = PhysicalDeviceShaderIntegerDotProductFeaturesKHR-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR"+type PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures  --- | VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR - Structure--- containing information about integer dot product support for a physical--- device------ = Description------ If the 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR' 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.------ These are properties of the integer dot product acceleration information--- of a physical device.------ Note------ A dot product operation is deemed accelerated if its implementation--- provides a performance advantage over application-provided code composed--- from elementary instructions and\/or other dot product instructions,--- either because the implementation uses optimized machine code sequences--- whose generation from application-provided code cannot be guaranteed or--- because it uses hardware features that cannot otherwise be targeted from--- application-provided code.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductPropertiesKHR-  { -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit unsigned-    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct8BitUnsignedAccelerated :: Bool-  , -- | @integerDotProduct8BitSignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed-    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct8BitSignedAccelerated :: Bool-  , -- | @integerDotProduct8BitMixedSignednessAccelerated@ is a boolean that will-    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit mixed-    -- signedness dot product operations using the @OpSUDotKHR@ SPIR-V-    -- instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct8BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProduct4x8BitPackedUnsignedAccelerated@ is a boolean that-    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit-    -- unsigned dot product operations from operands packed into 32-bit-    -- integers using the @OpUDotKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct4x8BitPackedUnsignedAccelerated :: Bool-  , -- | @integerDotProduct4x8BitPackedSignedAccelerated@ is a boolean that will-    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed-    -- dot product operations from operands packed into 32-bit integers using-    -- the @OpSDotKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct4x8BitPackedSignedAccelerated :: Bool-  , -- | @integerDotProduct4x8BitPackedMixedSignednessAccelerated@ is a boolean-    -- that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for-    -- 8-bit mixed signedness dot product operations from operands packed into-    -- 32-bit integers using the @OpSUDotKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct4x8BitPackedMixedSignednessAccelerated :: Bool-  , -- | @integerDotProduct16BitUnsignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit unsigned-    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct16BitUnsignedAccelerated :: Bool-  , -- | @integerDotProduct16BitSignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit signed-    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct16BitSignedAccelerated :: Bool-  , -- | @integerDotProduct16BitMixedSignednessAccelerated@ is a boolean that-    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit-    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V-    -- instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct16BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProduct32BitUnsignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit unsigned-    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct32BitUnsignedAccelerated :: Bool-  , -- | @integerDotProduct32BitSignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit signed-    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct32BitSignedAccelerated :: Bool-  , -- | @integerDotProduct32BitMixedSignednessAccelerated@ is a boolean that-    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit-    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V-    -- instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct32BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProduct64BitUnsignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit unsigned-    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct64BitUnsignedAccelerated :: Bool-  , -- | @integerDotProduct64BitSignedAccelerated@ is a boolean that will be-    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit signed-    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct64BitSignedAccelerated :: Bool-  , -- | @integerDotProduct64BitMixedSignednessAccelerated@ is a boolean that-    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit-    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V-    -- instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProduct64BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating8BitUnsignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 8-bit unsigned accumulating saturating dot product-    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating8BitSignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 8-bit signed accumulating saturating dot product operations-    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating8BitSignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 8-bit mixed signedness accumulating saturating dot product-    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 8-bit unsigned accumulating saturating dot product-    -- operations from operands packed into 32-bit integers using the-    -- @OpUDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 8-bit signed accumulating saturating dot product operations-    -- from operands packed into 32-bit integers using the @OpSDotAccSatKHR@-    -- SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 8-bit mixed signedness accumulating saturating dot product-    -- operations from operands packed into 32-bit integers using the-    -- @OpSUDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating16BitUnsignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 16-bit unsigned accumulating saturating dot product-    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating16BitSignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 16-bit signed accumulating saturating dot product operations-    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating16BitSignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 16-bit mixed signedness accumulating saturating dot product-    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating32BitUnsignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 32-bit unsigned accumulating saturating dot product-    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating32BitSignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 32-bit signed accumulating saturating dot product operations-    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating32BitSignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 32-bit mixed signedness accumulating saturating dot product-    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating64BitUnsignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 64-bit unsigned accumulating saturating dot product-    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating64BitSignedAccelerated@ is a-    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 64-bit signed accumulating saturating dot product operations-    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating64BitSignedAccelerated :: Bool-  , -- | @integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated@-    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the-    -- support for 64-bit mixed signedness accumulating saturating dot product-    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is-    -- accelerated-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.-    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)-#endif-deriving instance Show PhysicalDeviceShaderIntegerDotProductPropertiesKHR--instance ToCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR where-  withCStruct x f = allocaBytes 136 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceShaderIntegerDotProductPropertiesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitUnsignedAccelerated))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitSignedAccelerated))-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedUnsignedAccelerated))-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedSignedAccelerated))-    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedMixedSignednessAccelerated))-    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitUnsignedAccelerated))-    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitSignedAccelerated))-    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitUnsignedAccelerated))-    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitSignedAccelerated))-    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitUnsignedAccelerated))-    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitSignedAccelerated))-    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))-    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitSignedAccelerated))-    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))-    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))-    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))-    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))-    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitSignedAccelerated))-    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))-    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitSignedAccelerated))-    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))-    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))-    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitSignedAccelerated))-    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))-    f-  cStructSize = 136-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR where-  peekCStruct p = do-    integerDotProduct8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    integerDotProduct8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    integerDotProduct8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))-    integerDotProduct4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))-    integerDotProduct4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))-    integerDotProduct4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))-    integerDotProduct16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))-    integerDotProduct16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))-    integerDotProduct16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))-    integerDotProduct32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))-    integerDotProduct32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))-    integerDotProduct32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))-    integerDotProduct64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))-    integerDotProduct64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))-    integerDotProduct64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))-    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))-    pure $ PhysicalDeviceShaderIntegerDotProductPropertiesKHR-             (bool32ToBool integerDotProduct8BitUnsignedAccelerated) (bool32ToBool integerDotProduct8BitSignedAccelerated) (bool32ToBool integerDotProduct8BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProduct16BitUnsignedAccelerated) (bool32ToBool integerDotProduct16BitSignedAccelerated) (bool32ToBool integerDotProduct16BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct32BitUnsignedAccelerated) (bool32ToBool integerDotProduct32BitSignedAccelerated) (bool32ToBool integerDotProduct32BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct64BitUnsignedAccelerated) (bool32ToBool integerDotProduct64BitSignedAccelerated) (bool32ToBool integerDotProduct64BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated)--instance Storable PhysicalDeviceShaderIntegerDotProductPropertiesKHR where-  sizeOf ~_ = 136-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceShaderIntegerDotProductPropertiesKHR where-  zero = PhysicalDeviceShaderIntegerDotProductPropertiesKHR-           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+-- No documentation found for TopLevel "VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR"+type PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties   type KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs-boot
@@ -1,163 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_shader_integer_dot_product - device extension------ == VK_KHR_shader_integer_dot_product------ [__Name String__]---     @VK_KHR_shader_integer_dot_product@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     281------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Kevin Petit---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_integer_dot_product] @kevinpetit%0A<<Here describe the issue or question you have about the VK_KHR_shader_integer_dot_product extension>> >------ [__Extension Proposal__]---     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_integer_dot_product.asciidoc VK_KHR_shader_integer_dot_product>------ == Other Extension Metadata------ [__Last Modified Date__]---     2021-06-16------ [__Interactions and External Dependencies__]------     -   This extension requires---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html SPV_KHR_integer_dot_product>.------     -   This extension interacts with @VK_KHR_shader_float16_int8@.------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Kévin Petit, Arm Ltd.------     -   Jeff Bolz, NVidia------     -   Spencer Fricke, Samsung------     -   Jesse Hall, Google------     -   John Kessenich, Google------     -   Graeme Leese, Broadcom------     -   Einar Hov, Arm Ltd.------     -   Stuart Brady, Arm Ltd.------     -   Pablo Cascon, Arm Ltd.------     -   Tobias Hector, AMD------     -   Jeff Leger, Qualcomm------     -   Ruihao Zhang, Qualcomm------     -   Pierre Boudier, NVidia------     -   Jon Leech, The Khronos Group------     -   Tom Olson, Arm Ltd.------ == Description------ This extension adds support for the integer dot product SPIR-V--- instructions defined in SPV_KHR_integer_dot_product. These instructions--- are particularly useful for neural network inference and training but--- find uses in other general purpose compute applications as well.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceShaderIntegerDotProductFeaturesKHR'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------     -   'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'------ == New Enum Constants------ -   'KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME'------ -   'KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR'------ == New SPIR-V Capabilities------ -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR>------ -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR>------ -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR>------ -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>------ == Version History------ -   Revision 1, 2021-06-16 (Kévin Petit)------     -   Initial revision------ == See Also------ 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR',--- 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_shader_integer_dot_product  ( PhysicalDeviceShaderIntegerDotProductFeaturesKHR-                                                            , PhysicalDeviceShaderIntegerDotProductPropertiesKHR-                                                            ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceShaderIntegerDotProductFeaturesKHR--instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR-instance Show PhysicalDeviceShaderIntegerDotProductFeaturesKHR--instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR---data PhysicalDeviceShaderIntegerDotProductPropertiesKHR--instance ToCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR-instance Show PhysicalDeviceShaderIntegerDotProductPropertiesKHR--instance FromCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR-
src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs view
@@ -21,6 +21,11 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Baldur Karlsson@@ -31,14 +36,16 @@ -- [__Last Modified Date__] --     2019-10-16 ----- [__IP Status__]---     No known IP claims.--- -- [__Interactions and External Dependencies__] --+--     -   Promoted to Vulkan 1.3 Core+-- --     -   This extension requires --         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_non_semantic_info.html SPV_KHR_non_semantic_info> --+-- [__IP Status__]+--     No known IP claims.+-- -- [__Contributors__] -- --     -   Baldur Karlsson, Valve@@ -54,6 +61,13 @@ -- -- -   'KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3 Because+-- the extension has no API controlling its functionality, this results+-- only in a change to the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Extensions table>.+-- -- == Version History -- -- -   Revision 1, 2019-10-16 (Baldur Karlsson)@@ -67,7 +81,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_non_semantic_info Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_non_semantic_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs view
@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_extended_types Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_extended_types Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs view
@@ -61,7 +61,7 @@ -- to reduce the work performed by a uniform subgroup. This extension will -- guarantee that uniform subgroup will reconverge in the same manner as -- invocation groups (see “Uniform Control Flow” in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>). -- -- == New Structures --@@ -94,7 +94,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot view
@@ -61,7 +61,7 @@ -- to reduce the work performed by a uniform subgroup. This extension will -- guarantee that uniform subgroup will reconverge in the same manner as -- invocation groups (see “Uniform Control Flow” in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>). -- -- == New Structures --@@ -94,7 +94,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Jesse Hall@@ -33,15 +38,17 @@ -- [__Last Modified Date__] --     2020-08-11 ----- [__IP Status__]---     No known IP claims.--- -- [__Interactions and External Dependencies__] --+--     -   Promoted to Vulkan 1.3 Core+-- --     -   Requires the --         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_terminate_invocation.html SPV_KHR_terminate_invocation> --         SPIR-V extension. --+-- [__IP Status__]+--     No known IP claims.+-- -- [__Contributors__] -- --     -   Alan Baker, Google@@ -86,8 +93,14 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2020-08-11 (Jesse Hall)@@ -99,108 +112,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_shader_terminate_invocation  ( PhysicalDeviceShaderTerminateInvocationFeaturesKHR(..)+module Vulkan.Extensions.VK_KHR_shader_terminate_invocation  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR+                                                             , PhysicalDeviceShaderTerminateInvocationFeaturesKHR                                                              , KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION                                                              , pattern KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION                                                              , KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME                                                              , pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME                                                              ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR))--- | VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR - Structure--- describing support for the SPIR-V @SPV_KHR_terminate_invocation@--- extension------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' 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. 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' /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_KHR_shader_terminate_invocation VK_KHR_shader_terminate_invocation>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeaturesKHR-  { -- | #features-shaderTerminateInvocation# @shaderTerminateInvocation@-    -- specifies whether the implementation supports SPIR-V modules that use-    -- the @SPV_KHR_terminate_invocation@ extension.-    shaderTerminateInvocation :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR+import Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES -instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceShaderTerminateInvocationFeaturesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR where-  peekCStruct p = do-    shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceShaderTerminateInvocationFeaturesKHR-             (bool32ToBool shaderTerminateInvocation)--instance Storable PhysicalDeviceShaderTerminateInvocationFeaturesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceShaderTerminateInvocationFeaturesKHR where-  zero = PhysicalDeviceShaderTerminateInvocationFeaturesKHR-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR"+type PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures   type KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot
@@ -1,118 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_shader_terminate_invocation - device extension------ == VK_KHR_shader_terminate_invocation------ [__Name String__]---     @VK_KHR_shader_terminate_invocation@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     216------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Jesse Hall---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_terminate_invocation] @critsec%0A<<Here describe the issue or question you have about the VK_KHR_shader_terminate_invocation extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-08-11------ [__IP Status__]---     No known IP claims.------ [__Interactions and External Dependencies__]------     -   Requires the---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_terminate_invocation.html SPV_KHR_terminate_invocation>---         SPIR-V extension.------ [__Contributors__]------     -   Alan Baker, Google------     -   Jeff Bolz, NVIDIA------     -   Jesse Hall, Google------     -   Ralph Potter, Samsung------     -   Tom Olson, Arm------ == Description------ This extension adds Vulkan support for the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_terminate_invocation.html SPV_KHR_terminate_invocation>--- SPIR-V extension. That SPIR-V extension provides a new instruction,--- @OpTerminateInvocation@, which causes a shader invocation to immediately--- terminate and sets the coverage of shaded samples to @0@; only--- previously executed instructions will have observable effects. The--- @OpTerminateInvocation@ instruction, along with the--- @OpDemoteToHelperInvocation@ instruction from the--- @VK_EXT_shader_demote_to_helper_invocation@ extension, together replace--- the @OpKill@ instruction, which could behave like either of these--- instructions. @OpTerminateInvocation@ provides the behavior required by--- the GLSL @discard@ statement, and should be used when available by GLSL--- compilers and applications that need the GLSL @discard@ behavior.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'------ == New Enum Constants------ -   'KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME'------ -   'KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR'------ == Version History------ -   Revision 1, 2020-08-11 (Jesse Hall)------ == See Also------ 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_shader_terminate_invocation  (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceShaderTerminateInvocationFeaturesKHR--instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR-instance Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR--instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR-
src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs view
@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot view
@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs view
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_spirv_1_4 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs view
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -367,7 +367,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -572,7 +572,7 @@                      SurfaceKHR                   -> -- | @pAllocator@ is the allocator used for host memory allocated for the                      -- surface object when there is no more specific allocator available (see-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io () destroySurfaceKHR instance' surface allocator = liftIO . evalContT $ do@@ -1416,7 +1416,7 @@ -- -- The transfer functions are described in the “Transfer Functions” chapter -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- Except Display-P3 OETF, which is: --
src/Vulkan/Extensions/VK_KHR_surface.hs-boot view
@@ -367,7 +367,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -1069,7 +1069,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1370,7 +1370,7 @@                       (SwapchainCreateInfoKHR a)                    -> -- | @pAllocator@ is the allocator used for host memory allocated for the                       -- swapchain object when there is no more specific allocator available (see-                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                      -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                       ("allocator" ::: Maybe AllocationCallbacks)                    -> io (SwapchainKHR) createSwapchainKHR device createInfo allocator = liftIO . evalContT $ do@@ -1487,7 +1487,7 @@                        SwapchainKHR                     -> -- | @pAllocator@ is the allocator used for host memory allocated for the                        -- swapchain object when there is no more specific allocator available (see-                       -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                       -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                        ("allocator" ::: Maybe AllocationCallbacks)                     -> io () destroySwapchainKHR device swapchain allocator = liftIO . evalContT $ do@@ -1819,7 +1819,7 @@ -- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-01295# All elements of the --     @pWaitSemaphores@ member of @pPresentInfo@ /must/ be semaphores that --     are signaled, or have---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations> --     previously submitted for execution -- -- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-03267# All elements of the@@ -2500,7 +2500,7 @@ --     referred to by @surface@ -- -- -   #VUID-VkSwapchainCreateInfoKHR-imageFormat-01778# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters> --     of the swapchain /must/ be supported as reported by --     'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties' --@@ -2518,7 +2518,7 @@ --     is not zero then all of the formats in --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@ --     /must/ be compatible with the @format@ as described in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table> -- -- -   #VUID-VkSwapchainCreateInfoKHR-flags-04100# If @flags@ does not --     contain 'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' and the @pNext@@@ -2879,7 +2879,7 @@ -- -   #VUID-VkPresentInfoKHR-pNext-06235# If a --     'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR' structure is --     included in the @pNext@ chain, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-presentId presentId>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId> --     feature is not enabled, each @presentIds@ entry in that structure --     /must/ be NULL --@@ -3121,7 +3121,7 @@ -- -   #VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995# If @swapchain@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the fields of --     'Vulkan.Core10.Image.ImageCreateInfo' /must/ match the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters> --     of the swapchain -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -1069,7 +1069,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs view
@@ -114,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain_mutable_format Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain_mutable_format Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -23,5978 +23,1124 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ ----- [__Contact__]------     -   Tobias Hector---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_synchronization2] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_synchronization2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-12-03------ [__Interactions and External Dependencies__]------     -   Interacts with @VK_KHR_create_renderpass2@------ [__Contributors__]------     -   Tobias Hector------ == Description------ This extension modifies the original core synchronization APIs to--- simplify the interface and improve usability of these APIs. It also adds--- new pipeline stage and access flag types that extend into the 64-bit--- range, as we have run out within the 32-bit range. The new flags are--- identical to the old values within the 32-bit range, with new stages and--- bits beyond that.------ Pipeline stages and access flags are now specified together in memory--- barrier structures, making the connection between the two more obvious.--- Additionally, scoping the pipeline stages into the barrier structs--- allows the use of the @MEMORY_READ@ and @MEMORY_WRITE@ flags without--- sacrificing precision. The per-stage access flags should be used to--- disambiguate specific accesses in a given stage or set of stages - for--- instance, between uniform reads and sampling operations.------ Layout transitions have been simplified as well; rather than requiring a--- different set of layouts for depth\/stencil\/color attachments, there--- are generic--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'--- and 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- layouts which are contextually applied based on the image format. For--- example, for a depth format image,--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is--- equivalent to--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- also functionally replaces--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'.------ Events are now more efficient, because they include memory dependency--- information when you set them on the device. Previously, this--- information was only known when waiting on an event, so the dependencies--- could not be satisfied until the wait occurred. That sometimes meant--- stalling the pipeline when the wait occurred. The new API provides--- enough information for implementations to satisfy these dependencies in--- parallel with other tasks.------ Queue submission has been changed to wrap command buffers and semaphores--- in extensible structures, which incorporate changes from Vulkan 1.1,--- @VK_KHR_device_group@, and @VK_KHR_timeline_semaphore@. This also adds a--- pipeline stage to the semaphore signal operation, mirroring the existing--- pipeline stage specification for wait operations.------ Other miscellaneous changes include:------ -   Events can now be specified as interacting only with the device,---     allowing more efficient access to the underlying object.------ -   Image memory barriers that do not perform an image layout transition---     can be specified by setting @oldLayout@ equal to @newLayout@.------     -   E.g. the old and new layout can both be set to---         'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',---         without discarding data in the image.------ -   Queue family ownership transfer parameters are simplified in some---     cases.------ -   Where two synchronization commands need to be matched up (queue---     transfer operations, events), the dependency information specified---     in each place must now match completely for consistency.------ -   Extensions with commands or functions with a---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     parameter have had those APIs replaced with equivalents using---     'PipelineStageFlags2KHR'.------ -   The new event and barrier interfaces are now more extensible for---     future changes.------ -   Relevant pipeline stage masks can now be specified as empty with the---     new---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'---     and 'PIPELINE_STAGE_2_NONE_KHR' values.------ -   'MemoryBarrier2KHR' can be chained to---     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',---     overriding the original 32-bit stage and access masks.------ == New Base Types------ -   'Vulkan.Core10.FundamentalTypes.Flags64'------ == New Commands------ -   'cmdPipelineBarrier2KHR'------ -   'cmdResetEvent2KHR'------ -   'cmdSetEvent2KHR'------ -   'cmdWaitEvents2KHR'------ -   'cmdWriteTimestamp2KHR'------ -   'queueSubmit2KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>--- is supported:------ -   'cmdWriteBufferMarker2AMD'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>--- is supported:------ -   'getQueueCheckpointData2NV'------ == New Structures------ -   'BufferMemoryBarrier2KHR'------ -   'CommandBufferSubmitInfoKHR'------ -   'DependencyInfoKHR'------ -   'ImageMemoryBarrier2KHR'------ -   'SemaphoreSubmitInfoKHR'------ -   'SubmitInfo2KHR'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceSynchronization2FeaturesKHR'------ -   Extending---     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2':------     -   'MemoryBarrier2KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>--- is supported:------ -   'CheckpointData2NV'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':------     -   'QueueFamilyCheckpointProperties2NV'------ == New Enums------ -   'AccessFlagBits2KHR'------ -   'PipelineStageFlagBits2KHR'------ -   'SubmitFlagBitsKHR'------ == New Bitmasks------ -   'AccessFlags2KHR'------ -   'PipelineStageFlags2KHR'------ -   'SubmitFlagsKHR'------ == New Enum Constants------ -   'KHR_SYNCHRONIZATION_2_EXTENSION_NAME'------ -   'KHR_SYNCHRONIZATION_2_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':------     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_NONE_KHR'------ -   Extending---     'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits':------     -   'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'------ -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':------     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'------     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'------ -   Extending---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':------     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'------     -   'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'------     -   'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'------     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>--- is supported:------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>--- is supported:------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'------     -   'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>--- is supported:------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------     -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV'------     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV'------     -   'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>--- is supported:------ -   Extending 'AccessFlagBits2KHR':------     -   'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV'------ -   Extending 'PipelineStageFlagBits2KHR':------     -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ == Examples------ See--- <https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples>------ == Version History------ -   Revision 1, 2020-12-03 (Tobias Hector)------     -   Internal revisions------ == See Also------ 'AccessFlagBits2KHR', 'AccessFlags2KHR', 'BufferMemoryBarrier2KHR',--- 'CommandBufferSubmitInfoKHR', 'DependencyInfoKHR',--- 'Vulkan.Core10.FundamentalTypes.Flags64', 'ImageMemoryBarrier2KHR',--- 'MemoryBarrier2KHR', 'PhysicalDeviceSynchronization2FeaturesKHR',--- 'PipelineStageFlagBits2KHR', 'PipelineStageFlags2KHR',--- 'SemaphoreSubmitInfoKHR', 'SubmitFlagBitsKHR', 'SubmitFlagsKHR',--- 'SubmitInfo2KHR', 'cmdPipelineBarrier2KHR', 'cmdResetEvent2KHR',--- 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR', 'cmdWriteTimestamp2KHR',--- 'queueSubmit2KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_synchronization2  ( cmdSetEvent2KHR-                                                  , cmdResetEvent2KHR-                                                  , cmdWaitEvents2KHR-                                                  , cmdWaitEvents2KHRSafe-                                                  , cmdPipelineBarrier2KHR-                                                  , queueSubmit2KHR-                                                  , cmdWriteTimestamp2KHR-                                                  , cmdWriteBufferMarker2AMD-                                                  , getQueueCheckpointData2NV-                                                  , pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV-                                                  , pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV-                                                  , pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV-                                                  , pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV-                                                  , pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV-                                                  , pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV-                                                  , pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR-                                                  , MemoryBarrier2KHR(..)-                                                  , ImageMemoryBarrier2KHR(..)-                                                  , BufferMemoryBarrier2KHR(..)-                                                  , DependencyInfoKHR(..)-                                                  , SemaphoreSubmitInfoKHR(..)-                                                  , CommandBufferSubmitInfoKHR(..)-                                                  , SubmitInfo2KHR(..)-                                                  , QueueFamilyCheckpointProperties2NV(..)-                                                  , CheckpointData2NV(..)-                                                  , PhysicalDeviceSynchronization2FeaturesKHR(..)-                                                  , AccessFlags2KHR-                                                  , AccessFlagBits2KHR( ACCESS_2_NONE_KHR-                                                                      , ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR-                                                                      , ACCESS_2_INDEX_READ_BIT_KHR-                                                                      , ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR-                                                                      , ACCESS_2_UNIFORM_READ_BIT_KHR-                                                                      , ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR-                                                                      , ACCESS_2_SHADER_READ_BIT_KHR-                                                                      , ACCESS_2_SHADER_WRITE_BIT_KHR-                                                                      , ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR-                                                                      , ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR-                                                                      , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR-                                                                      , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR-                                                                      , ACCESS_2_TRANSFER_READ_BIT_KHR-                                                                      , ACCESS_2_TRANSFER_WRITE_BIT_KHR-                                                                      , ACCESS_2_HOST_READ_BIT_KHR-                                                                      , ACCESS_2_HOST_WRITE_BIT_KHR-                                                                      , ACCESS_2_MEMORY_READ_BIT_KHR-                                                                      , ACCESS_2_MEMORY_WRITE_BIT_KHR-                                                                      , ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR-                                                                      , ACCESS_2_SHADER_STORAGE_READ_BIT_KHR-                                                                      , ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR-                                                                      , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI-                                                                      , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT-                                                                      , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT-                                                                      , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR-                                                                      , ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR-                                                                      , ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR-                                                                      , ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV-                                                                      , ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV-                                                                      , ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT-                                                                      , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT-                                                                      , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT-                                                                      , ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT-                                                                      , ..-                                                                      )-                                                  , PipelineStageFlags2KHR-                                                  , PipelineStageFlagBits2KHR( PIPELINE_STAGE_2_NONE_KHR-                                                                             , PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR-                                                                             , PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR-                                                                             , PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR-                                                                             , PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR-                                                                             , PIPELINE_STAGE_2_HOST_BIT_KHR-                                                                             , PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR-                                                                             , PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR-                                                                             , PIPELINE_STAGE_2_COPY_BIT_KHR-                                                                             , PIPELINE_STAGE_2_RESOLVE_BIT_KHR-                                                                             , PIPELINE_STAGE_2_BLIT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_CLEAR_BIT_KHR-                                                                             , PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR-                                                                             , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI-                                                                             , PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI-                                                                             , PIPELINE_STAGE_2_MESH_SHADER_BIT_NV-                                                                             , PIPELINE_STAGE_2_TASK_SHADER_BIT_NV-                                                                             , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT-                                                                             , PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR-                                                                             , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR-                                                                             , PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR-                                                                             , PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV-                                                                             , PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT-                                                                             , PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT-                                                                             , ..-                                                                             )-                                                  , SubmitFlagsKHR-                                                  , SubmitFlagBitsKHR( SUBMIT_PROTECTED_BIT_KHR-                                                                     , ..-                                                                     )-                                                  , KHR_SYNCHRONIZATION_2_SPEC_VERSION-                                                  , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION-                                                  , KHR_SYNCHRONIZATION_2_EXTENSION_NAME-                                                  , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME-                                                  , Flags64-                                                  ) where--import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Exception.Base (bracket)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Data.Typeable (eqT)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Marshal.Alloc (callocBytes)-import Foreign.Marshal.Alloc (free)-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 GHC.Show (showString)-import Numeric (showHex)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Data.Vector (generateM)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero)-import Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.Bits (Bits)-import Data.Bits (FiniteBits)-import Data.String (IsString)-import Data.Type.Equality ((:~:)(Refl))-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.Word (Word64)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.CStruct.Extends (forgetExtensions)-import Vulkan.CStruct.Extends (peekSomeCStruct)-import Vulkan.CStruct.Extends (pokeSomeCStruct)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Handles (Buffer)-import Vulkan.Core10.Handles (Buffer(..))-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.Enums.DependencyFlagBits (DependencyFlags)-import Vulkan.Dynamic (DeviceCmds(pVkCmdPipelineBarrier2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdResetEvent2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetEvent2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdWaitEvents2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarker2AMD))-import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteTimestamp2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointData2NV))-import Vulkan.Dynamic (DeviceCmds(pVkQueueSubmit2KHR))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.Core10.Handles (Event)-import Vulkan.Core10.Handles (Event(..))-import Vulkan.CStruct.Extends (Extends)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.CStruct.Extends (Extensible(..))-import Vulkan.Core10.Handles (Fence)-import Vulkan.Core10.Handles (Fence(..))-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Core10.Handles (Image)-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import Vulkan.Core10.ImageView (ImageSubresourceRange)-import Vulkan.CStruct.Extends (PeekChain)-import Vulkan.CStruct.Extends (PeekChain(..))-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (PokeChain(..))-import Vulkan.Core10.Handles (QueryPool)-import Vulkan.Core10.Handles (QueryPool(..))-import Vulkan.Core10.Handles (Queue)-import Vulkan.Core10.Handles (Queue(..))-import Vulkan.Core10.Handles (Queue(Queue))-import Vulkan.Core10.Handles (Queue_T)-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)-import Vulkan.Core10.Handles (Semaphore)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoNV)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2_KHR))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetEvent2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Event -> Ptr DependencyInfoKHR -> IO ()---- | vkCmdSetEvent2KHR - Set an event object to signaled state------ = Description------ When 'cmdSetEvent2KHR' is submitted to a queue, it defines the first--- half of memory dependencies defined by @pDependencyInfo@, as well as an--- event signal operation which sets the event to the signaled state. A--- memory dependency is defined between the event signal operation and--- commands that occur earlier in submission order.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- are defined by the union of all the memory dependencies defined by--- @pDependencyInfo@, and are applied to all operations that occur earlier--- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers Queue family ownership transfers>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- defined by @pDependencyInfo@ are also included in the first scopes.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the event signal operation, and any--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- defined by @pDependencyInfo@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- includes only--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.------ Future 'cmdWaitEvents2KHR' commands rely on all values of each element--- in @pDependencyInfo@ matching exactly with those used to signal the--- corresponding event. 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents'--- /must/ not be used to wait on the result of a signal operation defined--- by 'cmdSetEvent2KHR'.------ Note------ The extra information provided by 'cmdSetEvent2KHR' compared to--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' allows implementations--- to more efficiently schedule the operations required to satisfy the--- requested dependencies. With--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent', the full dependency--- information is not known until--- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' is recorded, forcing--- implementations to insert the required operations at that point and not--- before.------ If @event@ is already in the signaled state when 'cmdSetEvent2KHR' is--- executed on the device, then 'cmdSetEvent2KHR' has no effect, no event--- signal operation occurs, and no dependency is generated.------ == Valid Usage------ -   #VUID-vkCmdSetEvent2KHR-synchronization2-03824# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkCmdSetEvent2KHR-dependencyFlags-03825# The @dependencyFlags@---     member of @pDependencyInfo@ /must/ be @0@------ -   #VUID-vkCmdSetEvent2KHR-commandBuffer-03826# The current device mask---     of @commandBuffer@ /must/ include exactly one physical device------ -   #VUID-vkCmdSetEvent2KHR-srcStageMask-03827# The @srcStageMask@---     member of any element of the @pMemoryBarriers@,---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfo@ /must/ only include pipeline stages valid for the---     queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ -   #VUID-vkCmdSetEvent2KHR-dstStageMask-03828# The @dstStageMask@---     member of any element of the @pMemoryBarriers@,---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfo@ /must/ only include pipeline stages valid for the---     queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetEvent2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetEvent2KHR-event-parameter# @event@ /must/ be a valid---     'Vulkan.Core10.Handles.Event' handle------ -   #VUID-vkCmdSetEvent2KHR-pDependencyInfo-parameter# @pDependencyInfo@---     /must/ be a valid pointer to a valid 'DependencyInfoKHR' structure------ -   #VUID-vkCmdSetEvent2KHR-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-vkCmdSetEvent2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdSetEvent2KHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdSetEvent2KHR-commonparent# Both of @commandBuffer@, and---     @event@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfoKHR',--- 'Vulkan.Core10.Handles.Event'-cmdSetEvent2KHR :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command is-                   -- recorded.-                   CommandBuffer-                -> -- | @event@ is the event that will be signaled.-                   Event-                -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfoKHR' structure-                   -- defining the first scopes of this operation.-                   DependencyInfoKHR-                -> io ()-cmdSetEvent2KHR commandBuffer event dependencyInfo = liftIO . evalContT $ do-  let vkCmdSetEvent2KHRPtr = pVkCmdSetEvent2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdSetEvent2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent2KHR is null" Nothing Nothing-  let vkCmdSetEvent2KHR' = mkVkCmdSetEvent2KHR vkCmdSetEvent2KHRPtr-  pDependencyInfo <- ContT $ withCStruct (dependencyInfo)-  lift $ traceAroundEvent "vkCmdSetEvent2KHR" (vkCmdSetEvent2KHR' (commandBufferHandle (commandBuffer)) (event) pDependencyInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResetEvent2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags2KHR -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags2KHR -> IO ()---- | vkCmdResetEvent2KHR - Reset an event object to non-signaled state------ = Description------ When 'cmdResetEvent2KHR' is submitted to a queue, it defines an--- execution dependency on commands that were submitted before it, and--- defines an event unsignal operation which resets the event to the--- unsignaled state.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The synchronization scope is limited to operations by @stageMask@ or--- stages that are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than @stageMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the event unsignal operation.------ If @event@ is already in the unsignaled state when 'cmdResetEvent2KHR'--- is executed on the device, then this command has no effect, no event--- unsignal operation occurs, and no execution dependency is generated.------ == Valid Usage------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-vkCmdResetEvent2KHR-stageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-vkCmdResetEvent2KHR-synchronization2-03829# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkCmdResetEvent2KHR-stageMask-03830# @stageMask@ /must/ not---     include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-vkCmdResetEvent2KHR-event-03831# There /must/ be an execution---     dependency between 'cmdResetEvent2KHR' and the execution of any---     'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' that includes---     @event@ in its @pEvents@ parameter------ -   #VUID-vkCmdResetEvent2KHR-event-03832# There /must/ be an execution---     dependency between 'cmdResetEvent2KHR' and the execution of any---     'cmdWaitEvents2KHR' that includes @event@ in its @pEvents@ parameter------ -   #VUID-vkCmdResetEvent2KHR-commandBuffer-03833# @commandBuffer@’s---     current device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResetEvent2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResetEvent2KHR-event-parameter# @event@ /must/ be a valid---     'Vulkan.Core10.Handles.Event' handle------ -   #VUID-vkCmdResetEvent2KHR-stageMask-parameter# @stageMask@ /must/ be---     a valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-vkCmdResetEvent2KHR-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-vkCmdResetEvent2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdResetEvent2KHR-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdResetEvent2KHR-commonparent# Both of @commandBuffer@, and---     @event@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'PipelineStageFlags2KHR'-cmdResetEvent2KHR :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command is-                     -- recorded.-                     CommandBuffer-                  -> -- | @event@ is the event that will be unsignaled.-                     Event-                  -> -- | @stageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages used-                     -- to determine the first-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.-                     ("stageMask" ::: PipelineStageFlags2KHR)-                  -> io ()-cmdResetEvent2KHR commandBuffer event stageMask = liftIO $ do-  let vkCmdResetEvent2KHRPtr = pVkCmdResetEvent2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdResetEvent2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent2KHR is null" Nothing Nothing-  let vkCmdResetEvent2KHR' = mkVkCmdResetEvent2KHR vkCmdResetEvent2KHRPtr-  traceAroundEvent "vkCmdResetEvent2KHR" (vkCmdResetEvent2KHR' (commandBufferHandle (commandBuffer)) (event) (stageMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWaitEvents2KHRUnsafe-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()--foreign import ccall-  "dynamic" mkVkCmdWaitEvents2KHRSafe-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()---- | cmdWaitEvents2KHR with selectable safeness-cmdWaitEvents2KHRSafeOrUnsafe :: forall io-                               . (MonadIO io)-                              => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ())-                              -> -- | @commandBuffer@ is the command buffer into which the command is-                                 -- recorded.-                                 CommandBuffer-                              -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.-                                 ("events" ::: Vector Event)-                              -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@-                                 -- 'DependencyInfoKHR' structures, defining the second-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.-                                 ("dependencyInfos" ::: Vector DependencyInfoKHR)-                              -> io ()-cmdWaitEvents2KHRSafeOrUnsafe mkVkCmdWaitEvents2KHR commandBuffer events dependencyInfos = liftIO . evalContT $ do-  let vkCmdWaitEvents2KHRPtr = pVkCmdWaitEvents2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdWaitEvents2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents2KHR is null" Nothing Nothing-  let vkCmdWaitEvents2KHR' = mkVkCmdWaitEvents2KHR vkCmdWaitEvents2KHRPtr-  let pEventsLength = Data.Vector.length $ (events)-  lift $ unless ((Data.Vector.length $ (dependencyInfos)) == pEventsLength) $-    throwIO $ IOError Nothing InvalidArgument "" "pDependencyInfos and pEvents must have the same length" Nothing Nothing-  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)-  pPDependencyInfos <- ContT $ allocaBytes @DependencyInfoKHR ((Data.Vector.length (dependencyInfos)) * 64)-  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPDependencyInfos `plusPtr` (64 * (i)) :: Ptr DependencyInfoKHR) (e) . ($ ())) (dependencyInfos)-  lift $ traceAroundEvent "vkCmdWaitEvents2KHR" (vkCmdWaitEvents2KHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pEventsLength :: Word32)) (pPEvents) (pPDependencyInfos))-  pure $ ()---- | vkCmdWaitEvents2KHR - Wait for one or more events------ = Description------ When 'cmdWaitEvents2KHR' is submitted to a queue, it inserts memory--- dependencies according to the elements of @pDependencyInfos@ and each--- corresponding element of @pEvents@. 'cmdWaitEvents2KHR' /must/ not be--- used to wait on event signal operations occurring on other queues, or--- signal operations executed by--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- of each memory dependency defined by any element i of @pDependencyInfos@--- are applied to operations that occurred earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>--- than the last event signal operation on element i of @pEvents@.------ Signal operations for an event at index i are only included if:------ -   The event was signaled by a 'cmdSetEvent2KHR' command that occurred---     earlier in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>---     with a @dependencyInfo@ parameter exactly equal to the element of---     @pDependencyInfos@ at index i ; or------ -   The event was created without---     'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR',---     and the first---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>---     defined by the element of @pDependencyInfos@ at index i only---     includes host operations ('PIPELINE_STAGE_2_HOST_BIT_KHR').------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- of each memory dependency defined by any element i of @pDependencyInfos@--- are applied to operations that occurred later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>--- than 'cmdWaitEvents2KHR'.------ Note------ 'cmdWaitEvents2KHR' is used with 'cmdSetEvent2KHR' to define a memory--- dependency between two sets of action commands, roughly in the same way--- as pipeline barriers, but split into two commands such that work between--- the two /may/ execute unhindered.------ Note------ Applications should be careful to avoid race conditions when using--- events. There is no direct ordering guarantee between 'cmdSetEvent2KHR'--- and 'cmdResetEvent2KHR',--- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent', or--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'. Another execution--- dependency (e.g. a pipeline barrier or semaphore with--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR') is needed to prevent such a--- race condition.------ == Valid Usage------ -   #VUID-vkCmdWaitEvents2KHR-synchronization2-03836# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-03837# Members of @pEvents@ /must/---     not have been signaled by---     'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-03838# For any element i of---     @pEvents@, if that event is signaled by 'cmdSetEvent2KHR', that---     command’s @dependencyInfo@ parameter /must/ be exactly equal to the---     ith element of @pDependencyInfos@------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-03839# For any element i of---     @pEvents@, if that event is signaled by---     'Vulkan.Core10.Event.setEvent', barriers in the ith element of---     @pDependencyInfos@ /must/ include only host operations in their---     first---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-03840# For any element i of---     @pEvents@, if barriers in the ith element of @pDependencyInfos@---     include only host operations, the ith element of @pEvents@ /must/ be---     signaled before 'cmdWaitEvents2KHR' is executed------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-03841# For any element i of---     @pEvents@, if barriers in the ith element of @pDependencyInfos@ do---     not include host operations, the ith element of @pEvents@ /must/ be---     signaled by a corresponding 'cmdSetEvent2KHR' that occurred earlier---     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>------ -   #VUID-vkCmdWaitEvents2KHR-srcStageMask-03842# The @srcStageMask@---     member of any element of the @pMemoryBarriers@,---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfos@ /must/ either include only pipeline stages valid---     for the queue family that was used to create the command pool that---     @commandBuffer@ was allocated from, or include only---     'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-vkCmdWaitEvents2KHR-dstStageMask-03843# The @dstStageMask@---     member of any element of the @pMemoryBarriers@,---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfos@ /must/ only include pipeline stages valid for the---     queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ -   #VUID-vkCmdWaitEvents2KHR-dependencyFlags-03844# The---     @dependencyFlags@ member of any element of @pDependencyInfo@ /must/---     be @0@------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-03845# If @pEvents@ includes one---     or more events that will be signaled by---     'Vulkan.Core10.Event.setEvent' after @commandBuffer@ has been---     submitted to a queue, then 'cmdWaitEvents2KHR' /must/ not be called---     inside a render pass instance------ -   #VUID-vkCmdWaitEvents2KHR-commandBuffer-03846# @commandBuffer@’s---     current device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWaitEvents2KHR-pEvents-parameter# @pEvents@ /must/ be a---     valid pointer to an array of @eventCount@ valid---     'Vulkan.Core10.Handles.Event' handles------ -   #VUID-vkCmdWaitEvents2KHR-pDependencyInfos-parameter#---     @pDependencyInfos@ /must/ be a valid pointer to an array of---     @eventCount@ valid 'DependencyInfoKHR' structures------ -   #VUID-vkCmdWaitEvents2KHR-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-vkCmdWaitEvents2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdWaitEvents2KHR-eventCount-arraylength# @eventCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdWaitEvents2KHR-commonparent# Both of @commandBuffer@, and---     the elements of @pEvents@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfoKHR',--- 'Vulkan.Core10.Handles.Event'-cmdWaitEvents2KHR :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command is-                     -- recorded.-                     CommandBuffer-                  -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.-                     ("events" ::: Vector Event)-                  -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@-                     -- 'DependencyInfoKHR' structures, defining the second-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.-                     ("dependencyInfos" ::: Vector DependencyInfoKHR)-                  -> io ()-cmdWaitEvents2KHR = cmdWaitEvents2KHRSafeOrUnsafe mkVkCmdWaitEvents2KHRUnsafe---- | A variant of 'cmdWaitEvents2KHR' which makes a *safe* FFI call-cmdWaitEvents2KHRSafe :: forall io-                       . (MonadIO io)-                      => -- | @commandBuffer@ is the command buffer into which the command is-                         -- recorded.-                         CommandBuffer-                      -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.-                         ("events" ::: Vector Event)-                      -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@-                         -- 'DependencyInfoKHR' structures, defining the second-                         -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.-                         ("dependencyInfos" ::: Vector DependencyInfoKHR)-                      -> io ()-cmdWaitEvents2KHRSafe = cmdWaitEvents2KHRSafeOrUnsafe mkVkCmdWaitEvents2KHRSafe---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdPipelineBarrier2KHR-  :: FunPtr (Ptr CommandBuffer_T -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr DependencyInfoKHR -> IO ()---- | vkCmdPipelineBarrier2KHR - Insert a memory dependency------ = Description------ When 'cmdPipelineBarrier2KHR' is submitted to a queue, it defines memory--- dependencies between commands that were submitted before it, and those--- submitted after it.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- of each memory dependency defined by @pDependencyInfo@ are applied to--- operations that occurred earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- of each memory dependency defined by @pDependencyInfo@ are applied to--- operations that occurred later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ If 'cmdPipelineBarrier2KHR' is recorded within a render pass instance,--- the synchronization scopes are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies limited to operations within the same subpass>.------ == Valid Usage------ -   #VUID-vkCmdPipelineBarrier2KHR-pDependencies-02285# If---     'cmdPipelineBarrier2KHR' is called within a render pass instance,---     the render pass /must/ have been created with at least one---     'Vulkan.Core10.Pass.SubpassDependency' instance in---     'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that---     expresses a dependency from the current subpass to itself, with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>---     that are all supersets of the scopes defined in this command------ -   #VUID-vkCmdPipelineBarrier2KHR-bufferMemoryBarrierCount-01178# If---     'cmdPipelineBarrier2KHR' is called within a render pass instance, it---     /must/ not include any buffer memory barriers------ -   #VUID-vkCmdPipelineBarrier2KHR-image-04073# If---     'cmdPipelineBarrier2KHR' is called within a render pass instance,---     the @image@ member of any image memory barrier included in this---     command /must/ be an attachment used in the current subpass both as---     an input attachment, and as either a color or depth\/stencil---     attachment------ -   #VUID-vkCmdPipelineBarrier2KHR-oldLayout-01181# If---     'cmdPipelineBarrier2KHR' is called within a render pass instance,---     the @oldLayout@ and @newLayout@ members of any image memory barrier---     included in this command /must/ be equal------ -   #VUID-vkCmdPipelineBarrier2KHR-srcQueueFamilyIndex-01182# If---     'cmdPipelineBarrier2KHR' is called within a render pass instance,---     the @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any---     image memory barrier included in this command /must/ be equal------ -   #VUID-vkCmdPipelineBarrier2KHR-dependencyFlags-01186# If---     'cmdPipelineBarrier2KHR' is called outside of a render pass---     instance,---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'---     /must/ not be included in the dependency flags------ -   #VUID-vkCmdPipelineBarrier2KHR-None-06191# If---     'cmdPipelineBarrier2KHR' is called within a render pass instance,---     the render pass /must/ not have been started with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ -   #VUID-vkCmdPipelineBarrier2KHR-synchronization2-03848# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkCmdPipelineBarrier2KHR-srcStageMask-03849# The---     @srcStageMask@ member of any element of the @pMemoryBarriers@,---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfo@ /must/ only include pipeline stages valid for the---     queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ -   #VUID-vkCmdPipelineBarrier2KHR-dstStageMask-03850# The---     @dstStageMask@ member of any element of the @pMemoryBarriers@,---     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfo@ /must/ only include pipeline stages valid for the---     queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ == Valid Usage (Implicit)------ -   #VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdPipelineBarrier2KHR-pDependencyInfo-parameter#---     @pDependencyInfo@ /must/ be a valid pointer to a valid---     'DependencyInfoKHR' structure------ -   #VUID-vkCmdPipelineBarrier2KHR-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-vkCmdPipelineBarrier2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfoKHR'-cmdPipelineBarrier2KHR :: forall io-                        . (MonadIO io)-                       => -- | @commandBuffer@ is the command buffer into which the command is-                          -- recorded.-                          CommandBuffer-                       -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfoKHR' structure-                          -- defining the scopes of this operation.-                          DependencyInfoKHR-                       -> io ()-cmdPipelineBarrier2KHR commandBuffer dependencyInfo = liftIO . evalContT $ do-  let vkCmdPipelineBarrier2KHRPtr = pVkCmdPipelineBarrier2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdPipelineBarrier2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier2KHR is null" Nothing Nothing-  let vkCmdPipelineBarrier2KHR' = mkVkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHRPtr-  pDependencyInfo <- ContT $ withCStruct (dependencyInfo)-  lift $ traceAroundEvent "vkCmdPipelineBarrier2KHR" (vkCmdPipelineBarrier2KHR' (commandBufferHandle (commandBuffer)) pDependencyInfo)-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkQueueSubmit2KHR-  :: FunPtr (Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2KHR) -> Fence -> IO Result) -> Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2KHR) -> Fence -> IO Result---- | vkQueueSubmit2KHR - Submits command buffers to a queue------ = Description------ 'queueSubmit2KHR' is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,--- with each batch defined by an element of @pSubmits@.------ Semaphore operations submitted with 'queueSubmit2KHR' have additional--- ordering constraints compared to other submission commands, with--- dependencies involving previous and subsequent queue operations.--- Information about these additional constraints can be found in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores semaphore>--- section of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.------ If any command buffer submitted to this queue is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,--- it is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>.--- Once execution of all submissions of a command buffer complete, it moves--- from the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,--- back to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.--- If a command buffer was recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT'--- flag, it instead moves back to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.------ If 'queueSubmit2KHR' fails, it /may/ return--- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or--- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'. If it does, the--- implementation /must/ ensure that the state and contents of any--- resources or synchronization primitives referenced by the submitted--- command buffers and any semaphores referenced by @pSubmits@ is--- unaffected by the call or its failure. If 'queueSubmit2KHR' fails in--- such a way that the implementation is unable to make that guarantee, the--- implementation /must/ return--- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'. See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.------ == Valid Usage------ -   #VUID-vkQueueSubmit2KHR-fence-04894# If @fence@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be---     unsignaled------ -   #VUID-vkQueueSubmit2KHR-fence-04895# If @fence@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be---     associated with any other queue command that has not yet completed---     execution on that queue------ -   #VUID-vkQueueSubmit2KHR-synchronization2-03866# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03867# If a command recorded---     into the @commandBuffer@ member of any element of the---     @pCommandBufferInfos@ member of any element of @pSubmits@ referenced---     an 'Vulkan.Core10.Handles.Event', that event /must/ not be---     referenced by a command that has been submitted to another queue and---     is still in the /pending state/------ -   #VUID-vkQueueSubmit2KHR-semaphore-03868# The @semaphore@ member of---     any binary semaphore element of the @pSignalSemaphoreInfos@ member---     of any element of @pSubmits@ /must/ be unsignaled when the semaphore---     signal operation it defines is executed on the device------ -   #VUID-vkQueueSubmit2KHR-stageMask-03869# The @stageMask@ member of---     any element of the @pSignalSemaphoreInfos@ member of any element of---     @pSubmits@ /must/ only include pipeline stages that are supported by---     the queue family which @queue@ belongs to------ -   #VUID-vkQueueSubmit2KHR-stageMask-03870# The @stageMask@ member of---     any element of the @pWaitSemaphoreInfos@ member of any element of---     @pSubmits@ /must/ only include pipeline stages that are supported by---     the queue family which @queue@ belongs to------ -   #VUID-vkQueueSubmit2KHR-semaphore-03871# When a semaphore wait---     operation for a binary semaphore is executed, as defined by the---     @semaphore@ member of any element of the @pWaitSemaphoreInfos@---     member of any element of @pSubmits@, there /must/ be no other queues---     waiting on the same semaphore------ -   #VUID-vkQueueSubmit2KHR-semaphore-03872# The @semaphore@ member of---     any element of the @pWaitSemaphoreInfos@ member of any element of---     @pSubmits@ /must/ be semaphores that are signaled, or have---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>---     previously submitted for execution------ -   #VUID-vkQueueSubmit2KHR-semaphore-03873# Any @semaphore@ member of---     any element of the @pWaitSemaphoreInfos@ member of any element of---     @pSubmits@ that was created with a---     'Vulkan.Extensions.VK_KHR_timeline_semaphore.SemaphoreTypeKHR' of---     'Vulkan.Extensions.VK_KHR_timeline_semaphore.SEMAPHORE_TYPE_BINARY_KHR'---     /must/ reference a semaphore signal operation that has been---     submitted for execution and any semaphore signal operations on which---     it depends (if any) /must/ have also been submitted for execution------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03874# The @commandBuffer@---     member of any element of the @pCommandBufferInfos@ member of any---     element of @pSubmits@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03875# If a command recorded---     into the @commandBuffer@ member of any element of the---     @pCommandBufferInfos@ member of any element of @pSubmits@ was not---     recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT',---     it /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03876# Any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>---     into the @commandBuffer@ member of any element of the---     @pCommandBufferInfos@ member of any element of @pSubmits@ /must/ be---     in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03877# If any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>---     into the @commandBuffer@ member of any element of the---     @pCommandBufferInfos@ member of any element of @pSubmits@ was not---     recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT',---     it /must/ not be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03878# The @commandBuffer@---     member of any element of the @pCommandBufferInfos@ member of any---     element of @pSubmits@ /must/ have been allocated from a---     'Vulkan.Core10.Handles.CommandPool' that was created for the same---     queue family @queue@ belongs to------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03879# If a command recorded---     into the @commandBuffer@ member of any element of the---     @pCommandBufferInfos@ member of any element of @pSubmits@ includes a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,---     there /must/ exist a previously submitted---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>---     on a queue in the queue family identified by the acquire operation,---     with parameters matching the acquire operation as defined in the---     definition of such---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,---     and which happens before the acquire operation------ -   #VUID-vkQueueSubmit2KHR-commandBuffer-03880# If a command recorded---     into the @commandBuffer@ member of any element of the---     @pCommandBufferInfos@ member of any element of @pSubmits@ was a---     'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' whose---     @queryPool@ was created with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>---     /must/ have been held continuously on the---     'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from,---     throughout recording of those command buffers------ -   #VUID-vkQueueSubmit2KHR-queue-06447# If @queue@ was not created with---     'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT',---     the @flags@ member of any element of @pSubmits@ /must/ not include---     'SUBMIT_PROTECTED_BIT_KHR'------ == Valid Usage (Implicit)------ -   #VUID-vkQueueSubmit2KHR-queue-parameter# @queue@ /must/ be a valid---     'Vulkan.Core10.Handles.Queue' handle------ -   #VUID-vkQueueSubmit2KHR-pSubmits-parameter# If @submitCount@ is not---     @0@, @pSubmits@ /must/ be a valid pointer to an array of---     @submitCount@ valid 'SubmitInfo2KHR' structures------ -   #VUID-vkQueueSubmit2KHR-fence-parameter# If @fence@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be a valid---     'Vulkan.Core10.Handles.Fence' handle------ -   #VUID-vkQueueSubmit2KHR-commonparent# Both of @fence@, and @queue@---     that are valid handles of non-ignored parameters /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @queue@ /must/ be externally synchronized------ -   Host access to @fence@ /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | -                                                                                                                          | -                                                                                                                      | Any                                                                                                                   |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ == 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'------     -   'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.Fence', 'Vulkan.Core10.Handles.Queue',--- 'SubmitInfo2KHR'-queueSubmit2KHR :: forall io-                 . (MonadIO io)-                => -- | @queue@ is the queue that the command buffers will be submitted to.-                   Queue-                -> -- | @pSubmits@ is a pointer to an array of 'SubmitInfo2KHR' structures, each-                   -- specifying a command buffer submission batch.-                   ("submits" ::: Vector (SomeStruct SubmitInfo2KHR))-                -> -- | @fence@ is an /optional/ handle to a fence to be signaled once all-                   -- submitted command buffers have completed execution. If @fence@ is not-                   -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a-                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.-                   Fence-                -> io ()-queueSubmit2KHR queue submits fence = liftIO . evalContT $ do-  let vkQueueSubmit2KHRPtr = pVkQueueSubmit2KHR (case queue of Queue{deviceCmds} -> deviceCmds)-  lift $ unless (vkQueueSubmit2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueSubmit2KHR is null" Nothing Nothing-  let vkQueueSubmit2KHR' = mkVkQueueSubmit2KHR vkQueueSubmit2KHRPtr-  pPSubmits <- ContT $ allocaBytes @(SubmitInfo2KHR _) ((Data.Vector.length (submits)) * 64)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPSubmits `plusPtr` (64 * (i)) :: Ptr (SubmitInfo2KHR _))) (e) . ($ ())) (submits)-  r <- lift $ traceAroundEvent "vkQueueSubmit2KHR" (vkQueueSubmit2KHR' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence))-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWriteTimestamp2KHR-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> Word32 -> IO ()---- | vkCmdWriteTimestamp2KHR - Write a device timestamp into a query object------ = Description------ When 'cmdWriteTimestamp2KHR' is submitted to a queue, it defines an--- execution dependency on commands that were submitted before it, and--- writes a timestamp to a query pool.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The synchronization scope is limited to operations on the pipeline stage--- specified by @stage@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the timestamp write operation.------ When the timestamp value is written, the availability status of the--- query is set to available.------ Note------ If an implementation is unable to detect completion and latch the timer--- at any specific stage of the pipeline, it /may/ instead do so at any--- logically later stage.------ Comparisons between timestamps are not meaningful if the timestamps are--- written by commands submitted to different queues.------ Note------ An example of such a comparison is subtracting an older timestamp from a--- newer one to determine the execution time of a sequence of commands.------ If 'cmdWriteTimestamp2KHR' is called while executing a render pass--- instance that has multiview enabled, the timestamp uses N consecutive--- query indices in the query pool (starting at @query@) where N is the--- number of bits set in the view mask of the subpass the command is--- executed in. The resulting query values are determined by an--- implementation-dependent choice of one of the following behaviors:------ -   The first query is a timestamp value and (if more than one bit is---     set in the view mask) zero is written to the remaining queries. If---     two timestamps are written in the same subpass, the sum of the---     execution time of all views between those commands is the difference---     between the first query written by each command.------ -   All N queries are timestamp values. If two timestamps are written in---     the same subpass, the sum of the execution time of all views between---     those commands is the sum of the difference between corresponding---     queries written by each command. The difference between---     corresponding queries /may/ be the execution time of a single view.------ In either case, the application /can/ sum the differences between all N--- queries to determine the total execution time.------ == Valid Usage------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-vkCmdWriteTimestamp2KHR-synchronization2-03858# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03859# @stage@ /must/ only---     include a single pipeline stage------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-03860# @stage@ /must/ only---     include stages valid for the queue family that was used to create---     the command pool that @commandBuffer@ was allocated from------ -   #VUID-vkCmdWriteTimestamp2KHR-queryPool-03861# @queryPool@ /must/---     have been created with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ -   #VUID-vkCmdWriteTimestamp2KHR-queryPool-03862# The query identified---     by @queryPool@ and @query@ /must/ be /unavailable/------ -   #VUID-vkCmdWriteTimestamp2KHR-timestampValidBits-03863# The command---     pool’s queue family /must/ support a non-zero @timestampValidBits@------ -   #VUID-vkCmdWriteTimestamp2KHR-query-04903# @query@ /must/ be less---     than the number of queries in @queryPool@------ -   #VUID-vkCmdWriteTimestamp2KHR-None-03864# All queries used by the---     command /must/ be unavailable------ -   #VUID-vkCmdWriteTimestamp2KHR-query-03865# If---     'cmdWriteTimestamp2KHR' is called within a render pass instance, the---     sum of @query@ and the number of bits set in the current subpass’s---     view mask /must/ be less than or equal to the number of queries in---     @queryPool@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWriteTimestamp2KHR-stage-parameter# @stage@ /must/ be a---     valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-vkCmdWriteTimestamp2KHR-queryPool-parameter# @queryPool@---     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdWriteTimestamp2KHR-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-vkCmdWriteTimestamp2KHR-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, compute, decode,---     or encode operations------ -   #VUID-vkCmdWriteTimestamp2KHR-commonparent# Both of @commandBuffer@,---     and @queryPool@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |--- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Handles.QueryPool'-cmdWriteTimestamp2KHR :: forall io-                       . (MonadIO io)-                      => -- | @commandBuffer@ is the command buffer into which the command will be-                         -- recorded.-                         CommandBuffer-                      -> -- | @stage@ specifies a stage of the pipeline.-                         PipelineStageFlags2KHR-                      -> -- | @queryPool@ is the query pool that will manage the timestamp.-                         QueryPool-                      -> -- | @query@ is the query within the query pool that will contain the-                         -- timestamp.-                         ("query" ::: Word32)-                      -> io ()-cmdWriteTimestamp2KHR commandBuffer stage queryPool query = liftIO $ do-  let vkCmdWriteTimestamp2KHRPtr = pVkCmdWriteTimestamp2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdWriteTimestamp2KHRPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp2KHR is null" Nothing Nothing-  let vkCmdWriteTimestamp2KHR' = mkVkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHRPtr-  traceAroundEvent "vkCmdWriteTimestamp2KHR" (vkCmdWriteTimestamp2KHR' (commandBufferHandle (commandBuffer)) (stage) (queryPool) (query))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWriteBufferMarker2AMD-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> Buffer -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> Buffer -> DeviceSize -> Word32 -> IO ()---- | vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value--- into a buffer------ = Description------ The command will write the 32-bit marker value into the buffer only--- after all preceding commands have finished executing up to at least the--- specified pipeline stage. This includes the completion of other--- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified--- pipeline stages occur either at the same time or earlier than this--- command’s specified @stage@.------ While consecutive buffer marker writes with the same @stage@ parameter--- implicitly complete in submission order, memory and execution--- dependencies between buffer marker writes and other operations /must/--- still be explicitly ordered using synchronization commands. The access--- scope for buffer marker writes falls under the--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the--- pipeline stages for identifying the synchronization scope /must/ include--- both @stage@ and--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.------ Note------ Similar to 'cmdWriteTimestamp2KHR', if an implementation is unable to--- write a marker at any specific pipeline stage, it /may/ instead do so at--- any logically later stage.------ Note------ Implementations /may/ only support a limited number of pipelined marker--- write operations in flight at a given time. Thus an excessive number of--- marker write operations /may/ degrade command execution performance.------ == Valid Usage------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @stage@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature /must/ be enabled------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include---     only a single pipeline stage------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03895# @stage@ /must/ include---     only stages that are valid for the queue family that was used to---     create the command pool that @commandBuffer@ was allocated from------ -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896# @dstOffset@ /must/---     be less than or equal to the size of @dstBuffer@ minus @4@------ -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897# @dstBuffer@ /must/---     have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899# @dstOffset@ /must/---     be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWriteBufferMarker2AMD-stage-parameter# @stage@ /must/ be---     a valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter# @dstBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdWriteBufferMarker2AMD-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-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdWriteBufferMarker2AMD-commonparent# Both of---     @commandBuffer@, and @dstBuffer@ /must/ have been created,---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |--- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |--- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'PipelineStageFlags2KHR'-cmdWriteBufferMarker2AMD :: forall io-                          . (MonadIO io)-                         => -- | @commandBuffer@ is the command buffer into which the command will be-                            -- recorded.-                            CommandBuffer-                         -> -- | @stage@ specifies the pipeline stage whose completion triggers the-                            -- marker write.-                            PipelineStageFlags2KHR-                         -> -- | @dstBuffer@ is the buffer where the marker will be written.-                            ("dstBuffer" ::: Buffer)-                         -> -- | @dstOffset@ is the byte offset into the buffer where the marker will be-                            -- written.-                            ("dstOffset" ::: DeviceSize)-                         -> -- | @marker@ is the 32-bit value of the marker.-                            ("marker" ::: Word32)-                         -> io ()-cmdWriteBufferMarker2AMD commandBuffer stage dstBuffer dstOffset marker = liftIO $ do-  let vkCmdWriteBufferMarker2AMDPtr = pVkCmdWriteBufferMarker2AMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdWriteBufferMarker2AMDPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarker2AMD is null" Nothing Nothing-  let vkCmdWriteBufferMarker2AMD' = mkVkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMDPtr-  traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD' (commandBufferHandle (commandBuffer)) (stage) (dstBuffer) (dstOffset) (marker))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetQueueCheckpointData2NV-  :: FunPtr (Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()) -> Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()---- | vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data------ = Description------ If @pCheckpointData@ is @NULL@, then the number of checkpoint markers--- available is returned in @pCheckpointDataCount@. Otherwise,--- @pCheckpointDataCount@ /must/ point to a variable set by the user to the--- number of elements in the @pCheckpointData@ array, and on return the--- variable is overwritten with the number of structures actually written--- to @pCheckpointData@.------ If @pCheckpointDataCount@ is less than the number of checkpoint markers--- available, at most @pCheckpointDataCount@ structures will be written.------ == Valid Usage------ -   #VUID-vkGetQueueCheckpointData2NV-queue-03892# The device that---     @queue@ belongs to /must/ be in the lost state------ == Valid Usage (Implicit)------ -   #VUID-vkGetQueueCheckpointData2NV-queue-parameter# @queue@ /must/ be---     a valid 'Vulkan.Core10.Handles.Queue' handle------ -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter#---     @pCheckpointDataCount@ /must/ be a valid pointer to a @uint32_t@---     value------ -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter# If the---     value referenced by @pCheckpointDataCount@ is not @0@, and---     @pCheckpointData@ is not @NULL@, @pCheckpointData@ /must/ be a valid---     pointer to an array of @pCheckpointDataCount@ 'CheckpointData2NV'---     structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,--- 'CheckpointData2NV', 'Vulkan.Core10.Handles.Queue'-getQueueCheckpointData2NV :: forall io-                           . (MonadIO io)-                          => -- | @queue@ is the 'Vulkan.Core10.Handles.Queue' object the caller would-                             -- like to retrieve checkpoint data for-                             Queue-                          -> io (("checkpointData" ::: Vector CheckpointData2NV))-getQueueCheckpointData2NV queue = liftIO . evalContT $ do-  let vkGetQueueCheckpointData2NVPtr = pVkGetQueueCheckpointData2NV (case queue of Queue{deviceCmds} -> deviceCmds)-  lift $ unless (vkGetQueueCheckpointData2NVPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueueCheckpointData2NV is null" Nothing Nothing-  let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr-  let queue' = queueHandle (queue)-  pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) (nullPtr))-  pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount-  pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointData2NV ((fromIntegral (pCheckpointDataCount)) * 32)) free-  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointData2NV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]-  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) ((pPCheckpointData)))-  pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount-  pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointData2NV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointData2NV)))-  pure $ (pCheckpointData')----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV"-pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR----- No documentation found for TopLevel "VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV"-pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV"-pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV"-pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR----- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV"-pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR----- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV"-pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR"-pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR----- | VkMemoryBarrier2KHR - Structure specifying a global memory barrier------ = Description------ This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- affecting all device memory.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- described by this structure include only operations and memory accesses--- specified by @srcStageMask@ and @srcAccessMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- described by this structure include only operations and memory accesses--- specified by @dstStageMask@ and @dstAccessMask@.------ == Valid Usage------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03900# If @srcAccessMask@---     includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03901# If @srcAccessMask@---     includes 'ACCESS_2_INDEX_READ_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03902# If @srcAccessMask@---     includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03903# If @srcAccessMask@---     includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03904# If @srcAccessMask@---     includes 'ACCESS_2_UNIFORM_READ_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03905# If @srcAccessMask@---     includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03906# If @srcAccessMask@---     includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03907# If @srcAccessMask@---     includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03908# If @srcAccessMask@---     includes 'ACCESS_2_SHADER_READ_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of---     the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03909# If @srcAccessMask@---     includes 'ACCESS_2_SHADER_WRITE_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03910# If @srcAccessMask@---     includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03911# If @srcAccessMask@---     includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03912# If @srcAccessMask@---     includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03913# If @srcAccessMask@---     includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03914# If @srcAccessMask@---     includes 'ACCESS_2_TRANSFER_READ_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03915# If @srcAccessMask@---     includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_CLEAR_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03916# If @srcAccessMask@---     includes 'ACCESS_2_HOST_READ_BIT_KHR', @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03917# If @srcAccessMask@---     includes 'ACCESS_2_HOST_WRITE_BIT_KHR', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03918# If @srcAccessMask@---     includes 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03919# If @srcAccessMask@---     includes 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03920# If @srcAccessMask@---     includes 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-04747# If @srcAccessMask@---     includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03922# If @srcAccessMask@---     includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03923# If @srcAccessMask@---     includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-04994# If @srcAccessMask@---     includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03924# If @srcAccessMask@---     includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03925# If @srcAccessMask@---     includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03926# If @srcAccessMask@---     includes 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03927# If @srcAccessMask@---     includes 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03928# If @srcAccessMask@---     includes 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-06256# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     is not enabled and @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@---     /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@---     stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03900# If @dstAccessMask@---     includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03901# If @dstAccessMask@---     includes 'ACCESS_2_INDEX_READ_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03902# If @dstAccessMask@---     includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03903# If @dstAccessMask@---     includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03904# If @dstAccessMask@---     includes 'ACCESS_2_UNIFORM_READ_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03905# If @dstAccessMask@---     includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03906# If @dstAccessMask@---     includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03907# If @dstAccessMask@---     includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03908# If @dstAccessMask@---     includes 'ACCESS_2_SHADER_READ_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of---     the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03909# If @dstAccessMask@---     includes 'ACCESS_2_SHADER_WRITE_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03910# If @dstAccessMask@---     includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03911# If @dstAccessMask@---     includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03912# If @dstAccessMask@---     includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03913# If @dstAccessMask@---     includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03914# If @dstAccessMask@---     includes 'ACCESS_2_TRANSFER_READ_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03915# If @dstAccessMask@---     includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_CLEAR_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03916# If @dstAccessMask@---     includes 'ACCESS_2_HOST_READ_BIT_KHR', @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03917# If @dstAccessMask@---     includes 'ACCESS_2_HOST_WRITE_BIT_KHR', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03918# If @dstAccessMask@---     includes 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03919# If @dstAccessMask@---     includes 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03920# If @dstAccessMask@---     includes 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-04747# If @dstAccessMask@---     includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03922# If @dstAccessMask@---     includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03923# If @dstAccessMask@---     includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-04994# If @dstAccessMask@---     includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03924# If @dstAccessMask@---     includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03925# If @dstAccessMask@---     includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03926# If @dstAccessMask@---     includes 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03927# If @dstAccessMask@---     includes 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03928# If @dstAccessMask@---     includes 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-06256# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     is not enabled and @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@---     /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@---     stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ == Valid Usage (Implicit)------ -   #VUID-VkMemoryBarrier2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-parameter# @srcStageMask@---     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-parameter# @srcAccessMask@---     /must/ be a valid combination of 'AccessFlagBits2KHR' values------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-parameter# @dstStageMask@---     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-parameter# @dstAccessMask@---     /must/ be a valid combination of 'AccessFlagBits2KHR' values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'AccessFlags2KHR', 'DependencyInfoKHR', 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data MemoryBarrier2KHR = MemoryBarrier2KHR-  { -- | @srcStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to-    -- be included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.-    srcStageMask :: PipelineStageFlags2KHR-  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be-    -- included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.-    srcAccessMask :: AccessFlags2KHR-  , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to-    -- be included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.-    dstStageMask :: PipelineStageFlags2KHR-  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be-    -- included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.-    dstAccessMask :: AccessFlags2KHR-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (MemoryBarrier2KHR)-#endif-deriving instance Show MemoryBarrier2KHR--instance ToCStruct MemoryBarrier2KHR where-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p MemoryBarrier2KHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)-    poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)-    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)-    poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)-    f-  cStructSize = 48-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    f--instance FromCStruct MemoryBarrier2KHR where-  peekCStruct p = do-    srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))-    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))-    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))-    pure $ MemoryBarrier2KHR-             srcStageMask srcAccessMask dstStageMask dstAccessMask--instance Storable MemoryBarrier2KHR where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero MemoryBarrier2KHR where-  zero = MemoryBarrier2KHR-           zero-           zero-           zero-           zero----- | VkImageMemoryBarrier2KHR - Structure specifying an image memory barrier------ = Description------ This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- limited to an image subresource range, and /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>--- for that subresource range.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- described by this structure include only operations and memory accesses--- specified by @srcStageMask@ and @srcAccessMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- described by this structure include only operations and memory accesses--- specified by @dstStageMask@ and @dstAccessMask@.------ Both--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>--- are limited to only memory accesses to @image@ in the subresource range--- defined by @subresourceRange@.------ If @image@ was created with--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and--- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory--- barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.--- When executed on a queue in the family identified by--- @srcQueueFamilyIndex@, this barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>--- for the specified image subresource range, and the second--- synchronization and access scopes do not synchronize operations on that--- queue. When executed on a queue in the family identified by--- @dstQueueFamilyIndex@, this barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>--- for the specified image subresource range, and the first synchronization--- and access scopes do not synchronize operations on that queue.------ A--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>--- is also defined if the values are not equal, and either is one of the--- special queue family values reserved for external memory ownership--- transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers>.--- A--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>--- is defined when @dstQueueFamilyIndex@ is one of those values, and a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>--- is defined when @srcQueueFamilyIndex@ is one of those values.------ If @oldLayout@ is not equal to @newLayout@, then the memory barrier--- defines an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>--- for the specified image subresource range. If this memory barrier--- defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>,--- the layout transition is only executed once between the queues.------ Note------ When the old and new layout are equal, the layout values are ignored ---- data is preserved no matter what values are specified, or what layout--- the image is currently in.------ If @image@ has a multi-planar format and the image is /disjoint/, then--- including--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' in the--- @aspectMask@ member of @subresourceRange@ is equivalent to including--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', and--- (for three-plane formats only)--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.------ == Valid Usage------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900# If---     @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03901# If---     @srcAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03902# If---     @srcAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03903# If---     @srcAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03904# If---     @srcAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03905# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03906# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03907# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03908# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of---     the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03909# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03910# If---     @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03911# If---     @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03912# If---     @srcAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03913# If---     @srcAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03914# If---     @srcAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03915# If---     @srcAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_CLEAR_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03916# If---     @srcAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03917# If---     @srcAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03918# If---     @srcAccessMask@ includes---     'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03919# If---     @srcAccessMask@ includes---     'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03920# If---     @srcAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747# If---     @srcAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03922# If---     @srcAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03923# If---     @srcAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04994# If---     @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03924# If---     @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03925# If---     @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03926# If---     @srcAccessMask@ includes---     'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03927# If---     @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03928# If---     @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @srcStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-06256# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     is not enabled and @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@---     /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@---     stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03900# If---     @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03901# If---     @dstAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03902# If---     @dstAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03903# If---     @dstAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03904# If---     @dstAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03905# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03906# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03907# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03908# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of---     the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03909# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03910# If---     @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03911# If---     @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03912# If---     @dstAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03913# If---     @dstAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03914# If---     @dstAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03915# If---     @dstAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_CLEAR_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03916# If---     @dstAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03917# If---     @dstAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03918# If---     @dstAccessMask@ includes---     'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03919# If---     @dstAccessMask@ includes---     'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03920# If---     @dstAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747# If---     @dstAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03922# If---     @dstAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03923# If---     @dstAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04994# If---     @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03924# If---     @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03925# If---     @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03926# If---     @dstAccessMask@ includes---     'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03927# If---     @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03928# If---     @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @dstStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-06256# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     is not enabled and @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@---     /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@---     stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01486#---     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was---     created------ -   #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01724# If---     @subresourceRange.levelCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',---     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@---     /must/ be less than or equal to the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01488#---     @subresourceRange.baseArrayLayer@ /must/ be less than the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01725# If---     @subresourceRange.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',---     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@---     /must/ be less than or equal to the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-VkImageMemoryBarrier2KHR-image-01932# If @image@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01208# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01209# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01210# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01211# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01212# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01213# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01197# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     @oldLayout@ /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the---     current layout of the image subresources affected by the barrier------ -   #VUID-VkImageMemoryBarrier2KHR-newLayout-01198# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     @newLayout@ /must/ not be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01658# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-01659# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04065# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'---     then @image@ /must/ have been created with at least one of---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04066# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'---     set------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04067# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'---     then @image@ /must/ have been created with at least one of---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04068# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'---     set------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03938# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR',---     @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'---     or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03939# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR',---     @image@ /must/ have been created with at least one of---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-02088# If---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'---     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'---     set------ -   #VUID-VkImageMemoryBarrier2KHR-image-01671# If @image@ has a---     single-plane color format or is not /disjoint/, then the---     @aspectMask@ member of @subresourceRange@ /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-image-01672# If @image@ has a---     multi-planar format and the image is /disjoint/, then the---     @aspectMask@ member of @subresourceRange@ /must/ include either at---     least one of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';---     or /must/ include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-image-01673# If @image@ has a---     multi-planar format with only two planes, then the @aspectMask@---     member of @subresourceRange@ /must/ not include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-image-03319# If @image@ has a---     depth\/stencil format with both depth and stencil and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>---     feature is enabled, then the @aspectMask@ member of---     @subresourceRange@ /must/ include either or both---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-image-03320# If @image@ has a---     depth\/stencil format with both depth and stencil and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>---     feature is not enabled, then the @aspectMask@ member of---     @subresourceRange@ /must/ include both---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04070# If---     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at---     least one /must/ not be a special queue family reserved for external---     memory ownership transfers, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ -   #VUID-VkImageMemoryBarrier2KHR-image-04071# If @image@ was created---     with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the---     special queue family values reserved for external memory transfers,---     the other /must/ be---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'------ -   #VUID-VkImageMemoryBarrier2KHR-image-04072# If @image@ was created---     with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid---     queue families, or one of the special queue family values reserved---     for external memory transfers, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03854# If either---     @srcStageMask@ or @dstStageMask@ includes---     'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ /must/ be equal------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855# If @srcStageMask@---     includes 'PIPELINE_STAGE_2_HOST_BIT_KHR', and @srcQueueFamilyIndex@---     and @dstQueueFamilyIndex@ define a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define an---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,---     @oldLayout@ /must/ be one of---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ == Valid Usage (Implicit)------ -   #VUID-VkImageMemoryBarrier2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'------ -   #VUID-VkImageMemoryBarrier2KHR-pNext-pNext# @pNext@ /must/ be @NULL@---     or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT'------ -   #VUID-VkImageMemoryBarrier2KHR-sType-unique# The @sType@ value of---     each struct in the @pNext@ chain /must/ be unique------ -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-parameter#---     @srcStageMask@ /must/ be a valid combination of---     'PipelineStageFlagBits2KHR' values------ -   #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-parameter#---     @srcAccessMask@ /must/ be a valid combination of---     'AccessFlagBits2KHR' values------ -   #VUID-VkImageMemoryBarrier2KHR-dstStageMask-parameter#---     @dstStageMask@ /must/ be a valid combination of---     'PipelineStageFlagBits2KHR' values------ -   #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-parameter#---     @dstAccessMask@ /must/ be a valid combination of---     'AccessFlagBits2KHR' values------ -   #VUID-VkImageMemoryBarrier2KHR-oldLayout-parameter# @oldLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-VkImageMemoryBarrier2KHR-newLayout-parameter# @newLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-VkImageMemoryBarrier2KHR-image-parameter# @image@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-VkImageMemoryBarrier2KHR-subresourceRange-parameter#---     @subresourceRange@ /must/ be a valid---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'AccessFlags2KHR', 'DependencyInfoKHR', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange',--- 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageMemoryBarrier2KHR (es :: [Type]) = ImageMemoryBarrier2KHR-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.-    next :: Chain es-  , -- | @srcStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to-    -- be included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.-    srcStageMask :: PipelineStageFlags2KHR-  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be-    -- included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.-    srcAccessMask :: AccessFlags2KHR-  , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to-    -- be included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.-    dstStageMask :: PipelineStageFlags2KHR-  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be-    -- included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.-    dstAccessMask :: AccessFlags2KHR-  , -- | @oldLayout@ is the old layout in an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.-    oldLayout :: ImageLayout-  , -- | @newLayout@ is the new layout in an-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.-    newLayout :: ImageLayout-  , -- | @srcQueueFamilyIndex@ is the source queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.-    srcQueueFamilyIndex :: Word32-  , -- | @dstQueueFamilyIndex@ is the destination queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.-    dstQueueFamilyIndex :: Word32-  , -- | @image@ is a handle to the image affected by this barrier.-    image :: Image-  , -- | @subresourceRange@ describes the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views image subresource range>-    -- within @image@ that is affected by this barrier.-    subresourceRange :: ImageSubresourceRange-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageMemoryBarrier2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (ImageMemoryBarrier2KHR es)--instance Extensible ImageMemoryBarrier2KHR where-  extensibleTypeName = "ImageMemoryBarrier2KHR"-  setNext ImageMemoryBarrier2KHR{..} next' = ImageMemoryBarrier2KHR{next = next', ..}-  getNext ImageMemoryBarrier2KHR{..} = next-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier2KHR e => b) -> Maybe b-  extends _ f-    | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f-    | otherwise = Nothing--instance (Extendss ImageMemoryBarrier2KHR es, PokeChain es) => ToCStruct (ImageMemoryBarrier2KHR es) where-  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageMemoryBarrier2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR)-    pNext'' <- fmap castPtr . ContT $ withChain (next)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)-    lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)-    lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)-    lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)-    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (oldLayout)-    lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (newLayout)-    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (srcQueueFamilyIndex)-    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (dstQueueFamilyIndex)-    lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (image)-    lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (subresourceRange)-    lift $ f-  cStructSize = 96-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR)-    pNext' <- fmap castPtr . ContT $ withZeroChain @es-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)-    lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (zero)-    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)-    lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (zero)-    lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero)-    lift $ f--instance (Extendss ImageMemoryBarrier2KHR es, PeekChain es) => FromCStruct (ImageMemoryBarrier2KHR es) where-  peekCStruct p = do-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))-    next <- peekChain (castPtr pNext)-    srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))-    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))-    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))-    oldLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))-    newLayout <- peek @ImageLayout ((p `plusPtr` 52 :: Ptr ImageLayout))-    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))-    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))-    image <- peek @Image ((p `plusPtr` 64 :: Ptr Image))-    subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 72 :: Ptr ImageSubresourceRange))-    pure $ ImageMemoryBarrier2KHR-             next srcStageMask srcAccessMask dstStageMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange--instance es ~ '[] => Zero (ImageMemoryBarrier2KHR es) where-  zero = ImageMemoryBarrier2KHR-           ()-           zero-           zero-           zero-           zero-           zero-           zero-           zero-           zero-           zero-           zero----- | VkBufferMemoryBarrier2KHR - Structure specifying a buffer memory barrier------ = Description------ This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- limited to a range of a buffer, and /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>--- for that range.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- described by this structure include only operations and memory accesses--- specified by @srcStageMask@ and @srcAccessMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- described by this structure include only operations and memory accesses--- specified by @dstStageMask@ and @dstAccessMask@.------ Both--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>--- are limited to only memory accesses to @buffer@ in the range defined by--- @offset@ and @size@.------ If @buffer@ was created with--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and--- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory--- barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.--- When executed on a queue in the family identified by--- @srcQueueFamilyIndex@, this barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>--- for the specified buffer range, and the second synchronization and--- access scopes do not synchronize operations on that queue. When executed--- on a queue in the family identified by @dstQueueFamilyIndex@, this--- barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>--- for the specified buffer range, and the first synchronization and access--- scopes do not synchronize operations on that queue.------ A--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>--- is also defined if the values are not equal, and either is one of the--- special queue family values reserved for external memory ownership--- transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers>.--- A--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>--- is defined when @dstQueueFamilyIndex@ is one of those values, and a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>--- is defined when @srcQueueFamilyIndex@ is one of those values.------ == Valid Usage------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03900# If---     @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03901# If---     @srcAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03902# If---     @srcAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03903# If---     @srcAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03904# If---     @srcAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03905# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03906# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03907# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03908# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of---     the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03909# If---     @srcAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03910# If---     @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03911# If---     @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03912# If---     @srcAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03913# If---     @srcAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03914# If---     @srcAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03915# If---     @srcAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_CLEAR_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03916# If---     @srcAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03917# If---     @srcAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',---     @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03918# If---     @srcAccessMask@ includes---     'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03919# If---     @srcAccessMask@ includes---     'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03920# If---     @srcAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @srcStageMask@ /must/---     include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04747# If---     @srcAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03922# If---     @srcAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03923# If---     @srcAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04994# If---     @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03924# If---     @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03925# If---     @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',---     @srcStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03926# If---     @srcAccessMask@ includes---     'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @srcStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03927# If---     @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03928# If---     @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @srcStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-06256# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     is not enabled and @srcAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@---     /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@---     stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03900# If---     @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03901# If---     @dstAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03902# If---     @dstAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03903# If---     @dstAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03904# If---     @dstAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03905# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03906# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03907# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03908# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of---     the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03909# If---     @dstAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03910# If---     @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03911# If---     @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03912# If---     @dstAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03913# If---     @dstAccessMask@ includes---     'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03914# If---     @dstAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03915# If---     @dstAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',---     'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',---     'PIPELINE_STAGE_2_CLEAR_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03916# If---     @dstAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03917# If---     @dstAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',---     @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03918# If---     @dstAccessMask@ includes---     'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03919# If---     @dstAccessMask@ includes---     'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03920# If---     @dstAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @dstStageMask@ /must/---     include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04747# If---     @dstAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03922# If---     @dstAccessMask@ includes---     'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03923# If---     @dstAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04994# If---     @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03924# If---     @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03925# If---     @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',---     @dstStageMask@ /must/ include---     'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03926# If---     @dstAccessMask@ includes---     'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @dstStageMask@---     /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'---     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03927# If---     @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03928# If---     @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @dstStageMask@---     /must/ include---     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or---     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-06256# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     is not enabled and @dstAccessMask@ includes---     'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@---     /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@---     stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-offset-01187# @offset@ /must/ be---     less than the size of @buffer@------ -   #VUID-VkBufferMemoryBarrier2KHR-size-01188# If @size@ is not equal---     to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater---     than @0@------ -   #VUID-VkBufferMemoryBarrier2KHR-size-01189# If @size@ is not equal---     to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less---     than or equal to than the size of @buffer@ minus @offset@------ -   #VUID-VkBufferMemoryBarrier2KHR-buffer-01931# If @buffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-VkBufferMemoryBarrier2KHR-srcQueueFamilyIndex-04087# If---     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at---     least one /must/ not be a special queue family reserved for external---     memory ownership transfers, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ -   #VUID-VkBufferMemoryBarrier2KHR-buffer-04088# If @buffer@ was---     created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the---     special queue family values reserved for external memory transfers,---     the other /must/ be---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'------ -   #VUID-VkBufferMemoryBarrier2KHR-buffer-04089# If @buffer@ was---     created with a sharing mode of---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid---     queue families, or one of the special queue family values reserved---     for external memory transfers, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851# If either---     @srcStageMask@ or @dstStageMask@ includes---     'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ /must/ be equal------ == Valid Usage (Implicit)------ -   #VUID-VkBufferMemoryBarrier2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'------ -   #VUID-VkBufferMemoryBarrier2KHR-pNext-pNext# @pNext@ /must/ be---     @NULL@------ -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-parameter#---     @srcStageMask@ /must/ be a valid combination of---     'PipelineStageFlagBits2KHR' values------ -   #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-parameter#---     @srcAccessMask@ /must/ be a valid combination of---     'AccessFlagBits2KHR' values------ -   #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-parameter#---     @dstStageMask@ /must/ be a valid combination of---     'PipelineStageFlagBits2KHR' values------ -   #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-parameter#---     @dstAccessMask@ /must/ be a valid combination of---     'AccessFlagBits2KHR' values------ -   #VUID-VkBufferMemoryBarrier2KHR-buffer-parameter# @buffer@ /must/ be---     a valid 'Vulkan.Core10.Handles.Buffer' handle------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'AccessFlags2KHR', 'Vulkan.Core10.Handles.Buffer', 'DependencyInfoKHR',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferMemoryBarrier2KHR = BufferMemoryBarrier2KHR-  { -- | @srcStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to-    -- be included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.-    srcStageMask :: PipelineStageFlags2KHR-  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be-    -- included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.-    srcAccessMask :: AccessFlags2KHR-  , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to-    -- be included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.-    dstStageMask :: PipelineStageFlags2KHR-  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be-    -- included in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.-    dstAccessMask :: AccessFlags2KHR-  , -- | @srcQueueFamilyIndex@ is the source queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.-    srcQueueFamilyIndex :: Word32-  , -- | @dstQueueFamilyIndex@ is the destination queue family for a-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.-    dstQueueFamilyIndex :: Word32-  , -- | @buffer@ is a handle to the buffer whose backing memory is affected by-    -- the barrier.-    buffer :: Buffer-  , -- | @offset@ is an offset in bytes into the backing memory for @buffer@;-    -- this is relative to the base offset as bound to the buffer (see-    -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory').-    offset :: DeviceSize-  , -- | @size@ is a size in bytes of the affected area of backing memory for-    -- @buffer@, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to use the range-    -- from @offset@ to the end of the buffer.-    size :: DeviceSize-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferMemoryBarrier2KHR)-#endif-deriving instance Show BufferMemoryBarrier2KHR--instance ToCStruct BufferMemoryBarrier2KHR where-  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferMemoryBarrier2KHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)-    poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)-    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)-    poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)-    poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)-    poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)-    poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)-    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)-    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)-    f-  cStructSize = 80-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)-    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)-    f--instance FromCStruct BufferMemoryBarrier2KHR where-  peekCStruct p = do-    srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))-    dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))-    dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))-    srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))-    dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))-    buffer <- peek @Buffer ((p `plusPtr` 56 :: Ptr Buffer))-    offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))-    size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))-    pure $ BufferMemoryBarrier2KHR-             srcStageMask srcAccessMask dstStageMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size--instance Storable BufferMemoryBarrier2KHR where-  sizeOf ~_ = 80-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferMemoryBarrier2KHR where-  zero = BufferMemoryBarrier2KHR-           zero-           zero-           zero-           zero-           zero-           zero-           zero-           zero-           zero----- | VkDependencyInfoKHR - Structure specifying dependency information for a--- synchronization command------ = Description------ This structure defines a set of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependencies>,--- as well as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.------ Each member of @pMemoryBarriers@, @pBufferMemoryBarriers@, and--- @pImageMemoryBarriers@ defines a separate--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>.------ == Valid Usage (Implicit)------ -   #VUID-VkDependencyInfoKHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'------ -   #VUID-VkDependencyInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkDependencyInfoKHR-dependencyFlags-parameter#---     @dependencyFlags@ /must/ be a valid combination of---     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values------ -   #VUID-VkDependencyInfoKHR-pMemoryBarriers-parameter# If---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid---     pointer to an array of @memoryBarrierCount@ valid---     'MemoryBarrier2KHR' structures------ -   #VUID-VkDependencyInfoKHR-pBufferMemoryBarriers-parameter# If---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@---     valid 'BufferMemoryBarrier2KHR' structures------ -   #VUID-VkDependencyInfoKHR-pImageMemoryBarriers-parameter# If---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid---     'ImageMemoryBarrier2KHR' structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'BufferMemoryBarrier2KHR',--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',--- 'ImageMemoryBarrier2KHR', 'MemoryBarrier2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdPipelineBarrier2KHR', 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR'-data DependencyInfoKHR = DependencyInfoKHR-  { -- | @dependencyFlags@ is a bitmask of-    -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying-    -- how execution and memory dependencies are formed.-    dependencyFlags :: DependencyFlags-  , -- | @pMemoryBarriers@ is a pointer to an array of 'MemoryBarrier2KHR'-    -- structures defining memory dependencies between any memory accesses.-    memoryBarriers :: Vector MemoryBarrier2KHR-  , -- | @pBufferMemoryBarriers@ is a pointer to an array of-    -- 'BufferMemoryBarrier2KHR' structures defining memory dependencies-    -- between buffer ranges.-    bufferMemoryBarriers :: Vector BufferMemoryBarrier2KHR-  , -- | @pImageMemoryBarriers@ is a pointer to an array of-    -- 'ImageMemoryBarrier2KHR' structures defining memory dependencies between-    -- image subresources.-    imageMemoryBarriers :: Vector (SomeStruct ImageMemoryBarrier2KHR)-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DependencyInfoKHR)-#endif-deriving instance Show DependencyInfoKHR--instance ToCStruct DependencyInfoKHR where-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p DependencyInfoKHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr DependencyFlags)) (dependencyFlags)-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))-    pPMemoryBarriers' <- ContT $ allocaBytes @MemoryBarrier2KHR ((Data.Vector.length (memoryBarriers)) * 48)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2KHR) (e)) (memoryBarriers)-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR))) (pPMemoryBarriers')-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))-    pPBufferMemoryBarriers' <- ContT $ allocaBytes @BufferMemoryBarrier2KHR ((Data.Vector.length (bufferMemoryBarriers)) * 80)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR) (e)) (bufferMemoryBarriers)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR))) (pPBufferMemoryBarriers')-    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))-    pPImageMemoryBarriers' <- ContT $ allocaBytes @(ImageMemoryBarrier2KHR _) ((Data.Vector.length (imageMemoryBarriers)) * 96)-    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))) (e) . ($ ())) (imageMemoryBarriers)-    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _)))) (pPImageMemoryBarriers')-    lift $ f-  cStructSize = 64-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    f--instance FromCStruct DependencyInfoKHR where-  peekCStruct p = do-    dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 16 :: Ptr DependencyFlags))-    memoryBarrierCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    pMemoryBarriers <- peek @(Ptr MemoryBarrier2KHR) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR)))-    pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2KHR ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2KHR)))-    bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR)))-    pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2KHR ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR)))-    imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))-    pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2KHR _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _))))-    pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _)))))-    pure $ DependencyInfoKHR-             dependencyFlags pMemoryBarriers' pBufferMemoryBarriers' pImageMemoryBarriers'--instance Zero DependencyInfoKHR where-  zero = DependencyInfoKHR-           zero-           mempty-           mempty-           mempty----- | VkSemaphoreSubmitInfoKHR - Structure specifying a semaphore signal or--- wait operation------ = Description------ Whether this structure defines a semaphore wait or signal operation is--- defined by how it is used.------ == Valid Usage------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03929# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03930# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or---     'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03931# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03934# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03935# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04956# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04957# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04995# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>---     feature is not enabled, @stageMask@ /must/ not contain---     'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ -   #VUID-VkSemaphoreSubmitInfoKHR-device-03888# If the @device@ that---     @semaphore@ was created on is not a device group, @deviceIndex@---     /must/ be @0@------ -   #VUID-VkSemaphoreSubmitInfoKHR-device-03889# If the @device@ that---     @semaphore@ was created on is a device group, @deviceIndex@ /must/---     be a valid device index------ == Valid Usage (Implicit)------ -   #VUID-VkSemaphoreSubmitInfoKHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'------ -   #VUID-VkSemaphoreSubmitInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@------ -   #VUID-VkSemaphoreSubmitInfoKHR-semaphore-parameter# @semaphore@---     /must/ be a valid 'Vulkan.Core10.Handles.Semaphore' handle------ -   #VUID-VkSemaphoreSubmitInfoKHR-stageMask-parameter# @stageMask@---     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'PipelineStageFlags2KHR', 'Vulkan.Core10.Handles.Semaphore',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2KHR'-data SemaphoreSubmitInfoKHR = SemaphoreSubmitInfoKHR-  { -- | @semaphore@ is a 'Vulkan.Core10.Handles.Semaphore' affected by this-    -- operation.-    semaphore :: Semaphore-  , -- | @value@ is either the value used to signal @semaphore@ or the value-    -- waited on by @semaphore@, if @semaphore@ is a timeline semaphore.-    -- Otherwise it is ignored.-    value :: Word64-  , -- | @stageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages which-    -- limit the first synchronization scope of a semaphore signal operation,-    -- or second synchronization scope of a semaphore wait operation as-    -- described in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>-    -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>-    -- sections of-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.-    stageMask :: PipelineStageFlags2KHR-  , -- | @deviceIndex@ is the index of the device within a device group that-    -- executes the semaphore wait or signal operation.-    deviceIndex :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (SemaphoreSubmitInfoKHR)-#endif-deriving instance Show SemaphoreSubmitInfoKHR--instance ToCStruct SemaphoreSubmitInfoKHR where-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p SemaphoreSubmitInfoKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)-    poke ((p `plusPtr` 24 :: Ptr Word64)) (value)-    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (stageMask)-    poke ((p `plusPtr` 40 :: Ptr Word32)) (deviceIndex)-    f-  cStructSize = 48-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)-    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)-    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)-    f--instance FromCStruct SemaphoreSubmitInfoKHR where-  peekCStruct p = do-    semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))-    value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))-    stageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))-    deviceIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))-    pure $ SemaphoreSubmitInfoKHR-             semaphore value stageMask deviceIndex--instance Storable SemaphoreSubmitInfoKHR where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero SemaphoreSubmitInfoKHR where-  zero = SemaphoreSubmitInfoKHR-           zero-           zero-           zero-           zero----- | VkCommandBufferSubmitInfoKHR - Structure specifying a command buffer--- submission------ == Valid Usage------ -   #VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-03890#---     @commandBuffer@ /must/ not have been allocated with---     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'------ -   #VUID-VkCommandBufferSubmitInfoKHR-deviceMask-03891# If @deviceMask@---     is not @0@, it /must/ be a valid device mask------ == Valid Usage (Implicit)------ -   #VUID-VkCommandBufferSubmitInfoKHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'------ -   #VUID-VkCommandBufferSubmitInfoKHR-pNext-pNext# @pNext@ /must/ be---     @NULL@------ -   #VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2KHR'-data CommandBufferSubmitInfoKHR = CommandBufferSubmitInfoKHR-  { -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be-    -- submitted for execution.-    commandBuffer :: Ptr CommandBuffer_T-  , -- | @deviceMask@ is a bitmask indicating which devices in a device group-    -- execute the command buffer. A @deviceMask@ of @0@ is equivalent to-    -- setting all bits corresponding to valid devices in the group to @1@.-    deviceMask :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CommandBufferSubmitInfoKHR)-#endif-deriving instance Show CommandBufferSubmitInfoKHR--instance ToCStruct CommandBufferSubmitInfoKHR where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CommandBufferSubmitInfoKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)-    f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)-    f--instance FromCStruct CommandBufferSubmitInfoKHR where-  peekCStruct p = do-    commandBuffer <- peek @(Ptr CommandBuffer_T) ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T)))-    deviceMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))-    pure $ CommandBufferSubmitInfoKHR-             commandBuffer deviceMask--instance Storable CommandBufferSubmitInfoKHR where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero CommandBufferSubmitInfoKHR where-  zero = CommandBufferSubmitInfoKHR-           zero-           zero----- | VkSubmitInfo2KHR - Structure specifying a queue submit operation------ == Valid Usage------ -   #VUID-VkSubmitInfo2KHR-semaphore-03881# If the same semaphore is---     used as the @semaphore@ member of both an element of---     @pSignalSemaphoreInfos@ and @pWaitSemaphoreInfos@, and that---     semaphore is a timeline semaphore, the @value@ member of the---     @pSignalSemaphoreInfos@ element /must/ be greater than the @value@---     member of the @pWaitSemaphoreInfos@ element------ -   #VUID-VkSubmitInfo2KHR-semaphore-03882# If the @semaphore@ member of---     any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the---     @value@ member of that element /must/ have a value greater than the---     current value of the semaphore when the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>---     is executed------ -   #VUID-VkSubmitInfo2KHR-semaphore-03883# If the @semaphore@ member of---     any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the---     @value@ member of that element /must/ have a value which does not---     differ from the current value of the semaphore or the value of any---     outstanding semaphore wait or signal operation on that semaphore by---     more than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>------ -   #VUID-VkSubmitInfo2KHR-semaphore-03884# If the @semaphore@ member of---     any element of @pWaitSemaphoreInfos@ is a timeline semaphore, the---     @value@ member of that element /must/ have a value which does not---     differ from the current value of the semaphore or the value of any---     outstanding semaphore wait or signal operation on that semaphore by---     more than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>------ -   #VUID-VkSubmitInfo2KHR-flags-03886# If @flags@ includes---     'SUBMIT_PROTECTED_BIT_KHR', all elements of @pCommandBuffers@ /must/---     be protected command buffers------ -   #VUID-VkSubmitInfo2KHR-flags-03887# If @flags@ does not include---     'SUBMIT_PROTECTED_BIT_KHR', each element of @pCommandBuffers@ /must/---     not be a protected command buffer------ -   #VUID-VkSubmitInfo2KHR-commandBuffer-06192# If any @commandBuffer@---     member of an element of @pCommandBufferInfos@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>,---     they /must/ be suspended by a render pass instance earlier in---     submission order within @pCommandBufferInfos@------ -   #VUID-VkSubmitInfo2KHR-commandBuffer-06010# If any @commandBuffer@---     member of an element of @pCommandBufferInfos@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     they /must/ be resumed by a render pass instance later in submission---     order within @pCommandBufferInfos@------ -   #VUID-VkSubmitInfo2KHR-commandBuffer-06011# If any @commandBuffer@---     member of an element of @pCommandBufferInfos@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     there /must/ be no action or synchronization commands between that---     render pass instance and the render pass instance that resumes it------ -   #VUID-VkSubmitInfo2KHR-commandBuffer-06012# If any @commandBuffer@---     member of an element of @pCommandBufferInfos@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     there /must/ be no render pass instances between that render pass---     instance and the render pass instance that resumes it------ -   #VUID-VkSubmitInfo2KHR-variableSampleLocations-06013# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>---     limit is not supported, and any @commandBuffer@ member of an element---     of @pCommandBufferInfos@ contains any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     where a graphics pipeline has been bound, any pipelines bound in the---     render pass instance that resumes it, or any subsequent render pass---     instances that resume from that one and so on, /must/ use the same---     sample locations------ == Valid Usage (Implicit)------ -   #VUID-VkSubmitInfo2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'------ -   #VUID-VkSubmitInfo2KHR-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_KHR_performance_query.PerformanceQuerySubmitInfoKHR',---     'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',---     or---     'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV'------ -   #VUID-VkSubmitInfo2KHR-sType-unique# The @sType@ value of each---     struct in the @pNext@ chain /must/ be unique------ -   #VUID-VkSubmitInfo2KHR-flags-parameter# @flags@ /must/ be a valid---     combination of 'SubmitFlagBitsKHR' values------ -   #VUID-VkSubmitInfo2KHR-pWaitSemaphoreInfos-parameter# If---     @waitSemaphoreInfoCount@ is not @0@, @pWaitSemaphoreInfos@ /must/ be---     a valid pointer to an array of @waitSemaphoreInfoCount@ valid---     'SemaphoreSubmitInfoKHR' structures------ -   #VUID-VkSubmitInfo2KHR-pCommandBufferInfos-parameter# If---     @commandBufferInfoCount@ is not @0@, @pCommandBufferInfos@ /must/ be---     a valid pointer to an array of @commandBufferInfoCount@ valid---     'CommandBufferSubmitInfoKHR' structures------ -   #VUID-VkSubmitInfo2KHR-pSignalSemaphoreInfos-parameter# If---     @signalSemaphoreInfoCount@ is not @0@, @pSignalSemaphoreInfos@---     /must/ be a valid pointer to an array of @signalSemaphoreInfoCount@---     valid 'SemaphoreSubmitInfoKHR' structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'CommandBufferSubmitInfoKHR', 'SemaphoreSubmitInfoKHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitFlagsKHR',--- 'queueSubmit2KHR'-data SubmitInfo2KHR (es :: [Type]) = SubmitInfo2KHR-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.-    next :: Chain es-  , -- | @flags@ is a bitmask of 'SubmitFlagBitsKHR'.-    flags :: SubmitFlagsKHR-  , -- | @pWaitSemaphoreInfos@ is a pointer to an array of-    -- 'SemaphoreSubmitInfoKHR' structures defining-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operations>.-    waitSemaphoreInfos :: Vector SemaphoreSubmitInfoKHR-  , -- | @pCommandBufferInfos@ is a pointer to an array of-    -- 'CommandBufferSubmitInfoKHR' structures describing command buffers to-    -- execute in the batch.-    commandBufferInfos :: Vector CommandBufferSubmitInfoKHR-  , -- | @pSignalSemaphoreInfos@ is a pointer to an array of-    -- 'SemaphoreSubmitInfoKHR' describing-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>.-    signalSemaphoreInfos :: Vector SemaphoreSubmitInfoKHR-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (SubmitInfo2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (SubmitInfo2KHR es)--instance Extensible SubmitInfo2KHR where-  extensibleTypeName = "SubmitInfo2KHR"-  setNext SubmitInfo2KHR{..} next' = SubmitInfo2KHR{next = next', ..}-  getNext SubmitInfo2KHR{..} = next-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo2KHR e => b) -> Maybe b-  extends _ f-    | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f-    | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoKHR = Just f-    | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f-    | otherwise = Nothing--instance (Extendss SubmitInfo2KHR es, PokeChain es) => ToCStruct (SubmitInfo2KHR es) where-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p SubmitInfo2KHR{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2_KHR)-    pNext'' <- fmap castPtr . ContT $ withChain (next)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''-    lift $ poke ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR)) (flags)-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (waitSemaphoreInfos)) :: Word32))-    pPWaitSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfoKHR ((Data.Vector.length (waitSemaphoreInfos)) * 48)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (waitSemaphoreInfos)-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPWaitSemaphoreInfos')-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))-    pPCommandBufferInfos' <- ContT $ allocaBytes @CommandBufferSubmitInfoKHR ((Data.Vector.length (commandBufferInfos)) * 32)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR) (e)) (commandBufferInfos)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR))) (pPCommandBufferInfos')-    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))-    pPSignalSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfoKHR ((Data.Vector.length (signalSemaphoreInfos)) * 48)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (signalSemaphoreInfos)-    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPSignalSemaphoreInfos')-    lift $ f-  cStructSize = 64-  cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2_KHR)-    pNext' <- fmap castPtr . ContT $ withZeroChain @es-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'-    lift $ f--instance (Extendss SubmitInfo2KHR es, PeekChain es) => FromCStruct (SubmitInfo2KHR es) where-  peekCStruct p = do-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))-    next <- peekChain (castPtr pNext)-    flags <- peek @SubmitFlagsKHR ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR))-    waitSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))-    pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))-    commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfoKHR) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR)))-    pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfoKHR ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR)))-    signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))-    pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))-    pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))-    pure $ SubmitInfo2KHR-             next flags pWaitSemaphoreInfos' pCommandBufferInfos' pSignalSemaphoreInfos'--instance es ~ '[] => Zero (SubmitInfo2KHR es) where-  zero = SubmitInfo2KHR-           ()-           zero-           mempty-           mempty-           mempty----- | VkQueueFamilyCheckpointProperties2NV - Return structure for queue family--- checkpoint information query------ = Description------ Additional queue family information can be queried by setting--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2'::@pNext@--- to point to a 'QueueFamilyCheckpointProperties2NV' structure.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,--- 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV-  { -- | @checkpointExecutionStageMask@ is a mask indicating which pipeline-    -- stages the implementation can execute checkpoint markers in.-    checkpointExecutionStageMask :: PipelineStageFlags2KHR }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (QueueFamilyCheckpointProperties2NV)-#endif-deriving instance Show QueueFamilyCheckpointProperties2NV--instance ToCStruct QueueFamilyCheckpointProperties2NV where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p QueueFamilyCheckpointProperties2NV{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (checkpointExecutionStageMask)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (zero)-    f--instance FromCStruct QueueFamilyCheckpointProperties2NV where-  peekCStruct p = do-    checkpointExecutionStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    pure $ QueueFamilyCheckpointProperties2NV-             checkpointExecutionStageMask--instance Storable QueueFamilyCheckpointProperties2NV where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero QueueFamilyCheckpointProperties2NV where-  zero = QueueFamilyCheckpointProperties2NV-           zero----- | VkCheckpointData2NV - Return structure for command buffer checkpoint--- data------ == Valid Usage (Implicit)------ The stages at which a checkpoint marker /can/ be executed are--- implementation-defined and /can/ be queried by calling--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2'.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,--- 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getQueueCheckpointData2NV'-data CheckpointData2NV = CheckpointData2NV-  { -- | @stage@ indicates a single pipeline stage which the checkpoint marker-    -- data refers to.-    stage :: PipelineStageFlags2KHR-  , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker-    -- executed in the stage that @stage@ refers to.-    checkpointMarker :: Ptr ()-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CheckpointData2NV)-#endif-deriving instance Show CheckpointData2NV--instance ToCStruct CheckpointData2NV where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CheckpointData2NV{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (stage)-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (checkpointMarker)-    f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (zero)-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)-    f--instance FromCStruct CheckpointData2NV where-  peekCStruct p = do-    stage <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))-    pCheckpointMarker <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))-    pure $ CheckpointData2NV-             stage pCheckpointMarker--instance Storable CheckpointData2NV where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero CheckpointData2NV where-  zero = CheckpointData2NV-           zero-           zero----- | VkPhysicalDeviceSynchronization2FeaturesKHR - Structure describing--- whether the implementation supports v2 synchronization commands------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceSynchronization2FeaturesKHR' 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. 'PhysicalDeviceSynchronization2FeaturesKHR' /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_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2FeaturesKHR-  { -- | #features-synchronization2# @synchronization2@ indicates whether the-    -- implementation supports the new set of synchronization commands-    -- introduced in @VK_KHR_synchronization2@.-    synchronization2 :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceSynchronization2FeaturesKHR)-#endif-deriving instance Show PhysicalDeviceSynchronization2FeaturesKHR--instance ToCStruct PhysicalDeviceSynchronization2FeaturesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceSynchronization2FeaturesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (synchronization2))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDeviceSynchronization2FeaturesKHR where-  peekCStruct p = do-    synchronization2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceSynchronization2FeaturesKHR-             (bool32ToBool synchronization2)--instance Storable PhysicalDeviceSynchronization2FeaturesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceSynchronization2FeaturesKHR where-  zero = PhysicalDeviceSynchronization2FeaturesKHR-           zero---type AccessFlags2KHR = AccessFlagBits2KHR---- | VkAccessFlagBits2KHR - Access flags for VkAccessFlags2KHR------ = Description------ Note------ In situations where an application wishes to select all access types for--- a given set of pipeline stages, 'ACCESS_2_MEMORY_READ_BIT_KHR' or--- 'ACCESS_2_MEMORY_WRITE_BIT_KHR' can be used. This is particularly useful--- when specifying stages that only have a single access type.------ Note------ The 'AccessFlags2KHR' bitmask goes beyond the 31 individual bit flags--- allowable within a C99 enum, which is how--- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' is defined. The--- first 31 values are common to both, and are interchangeable.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>-newtype AccessFlagBits2KHR = AccessFlagBits2KHR Flags64-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'ACCESS_2_NONE_KHR' specifies no accesses.-pattern ACCESS_2_NONE_KHR                               = AccessFlagBits2KHR 0x0000000000000000--- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR' specifies read access to--- command data read from indirect buffers as part of an indirect build,--- trace, drawing or dispatch command. Such access occurs in the--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' pipeline stage.-pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000001--- | 'ACCESS_2_INDEX_READ_BIT_KHR' specifies read access to an index buffer--- as part of an indexed drawing command, bound by--- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access--- occurs in the 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_INDEX_READ_BIT_KHR                     = AccessFlagBits2KHR 0x0000000000000002--- | 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR' specifies read access to a--- vertex buffer as part of a drawing command, bound by--- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access--- occurs in the 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' pipeline--- stage.-pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000004--- | 'ACCESS_2_UNIFORM_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>--- in any shader pipeline stage.-pattern ACCESS_2_UNIFORM_READ_BIT_KHR                   = AccessFlagBits2KHR 0x0000000000000008--- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR' specifies read access to an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment>--- within a render pass during subpass shading or fragment shading. Such--- access occurs in the 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' or--- 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' pipeline stage.-pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000010--- | 'ACCESS_2_SHADER_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table shader binding table>--- in any shader pipeline. In addition, it is equivalent to the logical OR--- of:------ -   'ACCESS_2_UNIFORM_READ_BIT_KHR'------ -   'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR'------ -   'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR'-pattern ACCESS_2_SHADER_READ_BIT_KHR                    = AccessFlagBits2KHR 0x0000000000000020--- | 'ACCESS_2_SHADER_WRITE_BIT_KHR' is equivalent to--- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR'.-pattern ACCESS_2_SHADER_WRITE_BIT_KHR                   = AccessFlagBits2KHR 0x0000000000000040--- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment>,--- such as via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>,--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.--- It does not include--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR          = AccessFlagBits2KHR 0x0000000000000080--- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment>--- during a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass render pass>--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR         = AccessFlagBits2KHR 0x0000000000000100--- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR' specifies read access--- to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,--- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR  = AccessFlagBits2KHR 0x0000000000000200--- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR' specifies write access--- to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,--- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000400--- | 'ACCESS_2_TRANSFER_READ_BIT_KHR' specifies read access to an image or--- buffer in a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>--- operation. Such access occurs in the 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', or 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR'--- pipeline stages.-pattern ACCESS_2_TRANSFER_READ_BIT_KHR                  = AccessFlagBits2KHR 0x0000000000000800--- | 'ACCESS_2_TRANSFER_WRITE_BIT_KHR' specifies write access to an image or--- buffer in a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>--- operation. Such access occurs in the 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_CLEAR_BIT_KHR', or--- 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' pipeline stages.-pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR                 = AccessFlagBits2KHR 0x0000000000001000--- | 'ACCESS_2_HOST_READ_BIT_KHR' specifies read access by a host operation.--- Accesses of this type are not performed through a resource, but directly--- on memory. Such access occurs in the 'PIPELINE_STAGE_2_HOST_BIT_KHR'--- pipeline stage.-pattern ACCESS_2_HOST_READ_BIT_KHR                      = AccessFlagBits2KHR 0x0000000000002000--- | 'ACCESS_2_HOST_WRITE_BIT_KHR' specifies write access by a host--- operation. Accesses of this type are not performed through a resource,--- but directly on memory. Such access occurs in the--- 'PIPELINE_STAGE_2_HOST_BIT_KHR' pipeline stage.-pattern ACCESS_2_HOST_WRITE_BIT_KHR                     = AccessFlagBits2KHR 0x0000000000004000--- | 'ACCESS_2_MEMORY_READ_BIT_KHR' specifies all read accesses. It is always--- valid in any access mask, and is treated as equivalent to setting all--- @READ@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_READ_BIT_KHR                    = AccessFlagBits2KHR 0x0000000000008000--- | 'ACCESS_2_MEMORY_WRITE_BIT_KHR' specifies all write accesses. It is--- always valid in any access mask, and is treated as equivalent to setting--- all @WRITE@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_WRITE_BIT_KHR                   = AccessFlagBits2KHR 0x0000000000010000--- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>--- in any shader pipeline stage.-pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR            = AccessFlagBits2KHR 0x0000000100000000--- | 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>--- in any shader pipeline stage.-pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR            = AccessFlagBits2KHR 0x0000000200000000--- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>--- in any shader pipeline stage.-pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR           = AccessFlagBits2KHR 0x0000000400000000--- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a--- invocation mask image in the--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' pipeline stage.-pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI        = AccessFlagBits2KHR 0x0000008000000000--- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read--- access to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachments>,--- including--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2KHR 0x0000000000080000--- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>--- during dynamic--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pipeline stage.-pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT      = AccessFlagBits2KHR 0x0000000001000000--- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access--- to an acceleration structure or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>--- as part of a build or copy command. Such access occurs in the--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' pipeline stage.-pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR   = AccessFlagBits2KHR 0x0000000000400000--- | 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to--- an acceleration structure as part of a trace, build, or copy command, or--- to an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>--- as part of a build command. Such access occurs in the--- 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' pipeline stage or--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' pipeline stage.-pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR    = AccessFlagBits2KHR 0x0000000000200000--- | 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read--- access to a fragment shading rate attachment during rasterization. Such--- access occurs in the--- 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' pipeline--- stage.-pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000800000--- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the--- target command buffer preprocess outputs. Such access occurs in the--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV        = AccessFlagBits2KHR 0x0000000000040000--- | 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer--- inputs to--- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.--- Such access occurs in the 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'--- pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV         = AccessFlagBits2KHR 0x0000000000020000--- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a--- predicate as part of conditional rendering. Such access occurs in the--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' pipeline stage.-pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT     = AccessFlagBits2KHR 0x0000000000100000--- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write--- access to a transform feedback counter buffer which is written when--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'--- executes. Such access occurs in the--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2KHR 0x0000000008000000--- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access--- to a transform feedback counter buffer which is read when--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'--- executes. Such access occurs in the--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000004000000--- | 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a--- transform feedback buffer made when transform feedback is active. Such--- access occurs in the 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'--- pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT       = AccessFlagBits2KHR 0x0000000002000000--conNameAccessFlagBits2KHR :: String-conNameAccessFlagBits2KHR = "AccessFlagBits2KHR"--enumPrefixAccessFlagBits2KHR :: String-enumPrefixAccessFlagBits2KHR = "ACCESS_2_"--showTableAccessFlagBits2KHR :: [(AccessFlagBits2KHR, String)]-showTableAccessFlagBits2KHR =-  [ (ACCESS_2_NONE_KHR                              , "NONE_KHR")-  , (ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR         , "INDIRECT_COMMAND_READ_BIT_KHR")-  , (ACCESS_2_INDEX_READ_BIT_KHR                    , "INDEX_READ_BIT_KHR")-  , (ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR         , "VERTEX_ATTRIBUTE_READ_BIT_KHR")-  , (ACCESS_2_UNIFORM_READ_BIT_KHR                  , "UNIFORM_READ_BIT_KHR")-  , (ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR         , "INPUT_ATTACHMENT_READ_BIT_KHR")-  , (ACCESS_2_SHADER_READ_BIT_KHR                   , "SHADER_READ_BIT_KHR")-  , (ACCESS_2_SHADER_WRITE_BIT_KHR                  , "SHADER_WRITE_BIT_KHR")-  , (ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR         , "COLOR_ATTACHMENT_READ_BIT_KHR")-  , (ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR        , "COLOR_ATTACHMENT_WRITE_BIT_KHR")-  , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR , "DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR")-  , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR")-  , (ACCESS_2_TRANSFER_READ_BIT_KHR                 , "TRANSFER_READ_BIT_KHR")-  , (ACCESS_2_TRANSFER_WRITE_BIT_KHR                , "TRANSFER_WRITE_BIT_KHR")-  , (ACCESS_2_HOST_READ_BIT_KHR                     , "HOST_READ_BIT_KHR")-  , (ACCESS_2_HOST_WRITE_BIT_KHR                    , "HOST_WRITE_BIT_KHR")-  , (ACCESS_2_MEMORY_READ_BIT_KHR                   , "MEMORY_READ_BIT_KHR")-  , (ACCESS_2_MEMORY_WRITE_BIT_KHR                  , "MEMORY_WRITE_BIT_KHR")-  , (ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR           , "SHADER_SAMPLED_READ_BIT_KHR")-  , (ACCESS_2_SHADER_STORAGE_READ_BIT_KHR           , "SHADER_STORAGE_READ_BIT_KHR")-  , (ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR          , "SHADER_STORAGE_WRITE_BIT_KHR")-  , (ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI       , "INVOCATION_MASK_READ_BIT_HUAWEI")-  , (ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")-  , (ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT     , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")-  , (ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR  , "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")-  , (ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR   , "ACCELERATION_STRUCTURE_READ_BIT_KHR")-  , (ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")-  , (ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV       , "COMMAND_PREPROCESS_WRITE_BIT_NV")-  , (ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV        , "COMMAND_PREPROCESS_READ_BIT_NV")-  , (ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT    , "CONDITIONAL_RENDERING_READ_BIT_EXT")-  , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")-  , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")-  , (ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT      , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")-  ]--instance Show AccessFlagBits2KHR where-  showsPrec = enumShowsPrec enumPrefixAccessFlagBits2KHR-                            showTableAccessFlagBits2KHR-                            conNameAccessFlagBits2KHR-                            (\(AccessFlagBits2KHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read AccessFlagBits2KHR where-  readPrec =-    enumReadPrec enumPrefixAccessFlagBits2KHR showTableAccessFlagBits2KHR conNameAccessFlagBits2KHR AccessFlagBits2KHR---type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR---- | VkPipelineStageFlagBits2KHR - Pipeline stage flags for--- VkPipelineStageFlags2KHR------ = Description------ Note------ The @TOP@ and @BOTTOM@ pipeline stages are deprecated, and applications--- should prefer 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' and--- 'PIPELINE_STAGE_2_NONE_KHR'.------ Note------ The 'PipelineStageFlags2KHR' bitmask goes beyond the 31 individual bit--- flags allowable within a C99 enum, which is how--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' is--- defined. The first 31 values are common to both, and are--- interchangeable.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>-newtype PipelineStageFlagBits2KHR = PipelineStageFlagBits2KHR Flags64-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'PIPELINE_STAGE_2_NONE_KHR' specifies no stages of execution.-pattern PIPELINE_STAGE_2_NONE_KHR                               = PipelineStageFlagBits2KHR 0x0000000000000000--- | 'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR' is equivalent to--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to--- @0@ when specified in the second synchronization scope, but equivalent--- to 'PIPELINE_STAGE_2_NONE_KHR' in the first scope.-pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                    = PipelineStageFlagBits2KHR 0x0000000000000001--- | 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' specifies the stage of the--- pipeline where indirect command parameters are consumed. This stage also--- includes reading commands written by--- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.-pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR                  = PipelineStageFlagBits2KHR 0x0000000000000002--- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR' is equivalent to the logical OR--- of:------ -   'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR'------ -   'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR'-pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000000004--- | 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR' specifies the vertex shader--- stage.-pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR                  = PipelineStageFlagBits2KHR 0x0000000000000008--- | 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' specifies the--- tessellation control shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR    = PipelineStageFlagBits2KHR 0x0000000000000010--- | 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR' specifies the--- tessellation evaluation shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000020--- | 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR' specifies the geometry shader--- stage.-pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR                = PipelineStageFlagBits2KHR 0x0000000000000040--- | 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' specifies the fragment shader--- stage.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR                = PipelineStageFlagBits2KHR 0x0000000000000080--- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' specifies the stage of--- the pipeline where early fragment tests (depth and stencil tests before--- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>--- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR           = PipelineStageFlagBits2KHR 0x0000000000000100--- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' specifies the stage of--- the pipeline where late fragment tests (depth and stencil tests after--- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>--- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR            = PipelineStageFlagBits2KHR 0x0000000000000200--- | 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' specifies the stage--- of the pipeline after blending where the final color values are output--- from the pipeline. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>--- and multisample resolve operations for framebuffer attachments with a--- color or depth\/stencil format.-pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR        = PipelineStageFlagBits2KHR 0x0000000000000400--- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR' specifies the compute shader--- stage.-pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR                 = PipelineStageFlagBits2KHR 0x0000000000000800--- | 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR' is equivalent to specifying all--- of:------ -   'PIPELINE_STAGE_2_COPY_BIT_KHR'------ -   'PIPELINE_STAGE_2_BLIT_BIT_KHR'------ -   'PIPELINE_STAGE_2_RESOLVE_BIT_KHR'------ -   'PIPELINE_STAGE_2_CLEAR_BIT_KHR'-pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000001000--- | 'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR' is equivalent to--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to--- @0@ when specified in the first synchronization scope, but equivalent to--- 'PIPELINE_STAGE_2_NONE_KHR' in the second scope.-pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR                 = PipelineStageFlagBits2KHR 0x0000000000002000--- | 'PIPELINE_STAGE_2_HOST_BIT_KHR' specifies a pseudo-stage indicating--- execution on the host of reads\/writes of device memory. This stage is--- not invoked by any commands recorded in a command buffer.-pattern PIPELINE_STAGE_2_HOST_BIT_KHR                           = PipelineStageFlagBits2KHR 0x0000000000004000--- | 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR' specifies the execution of all--- graphics pipeline stages, and is equivalent to the logical OR of:------ -   'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR'------ -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ -   'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR'------ -   'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR'------ -   'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR'------ -   'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'------ -   'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ -   'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'-pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000008000--- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' specifies all operations--- performed by all commands supported on the queue it is used with.-pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR                   = PipelineStageFlagBits2KHR 0x0000000000010000--- | 'PIPELINE_STAGE_2_COPY_BIT_KHR' specifies the execution of all--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>,--- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.-pattern PIPELINE_STAGE_2_COPY_BIT_KHR                           = PipelineStageFlagBits2KHR 0x0000000100000000--- | 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' specifies the execution of--- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'.-pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR                        = PipelineStageFlagBits2KHR 0x0000000200000000--- | 'PIPELINE_STAGE_2_BLIT_BIT_KHR' specifies the execution of--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.-pattern PIPELINE_STAGE_2_BLIT_BIT_KHR                           = PipelineStageFlagBits2KHR 0x0000000400000000--- | 'PIPELINE_STAGE_2_CLEAR_BIT_KHR' specifies the execution of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>,--- with the exception of--- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.-pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR                          = PipelineStageFlagBits2KHR 0x0000000800000000--- | 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' specifies the stage of the--- pipeline where index buffers are consumed.-pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                    = PipelineStageFlagBits2KHR 0x0000001000000000--- | 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' specifies the stage of--- the pipeline where vertex buffers are consumed.-pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR         = PipelineStageFlagBits2KHR 0x0000002000000000--- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR' is equivalent to--- specifying all supported--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>:------ -   'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'-pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR      = PipelineStageFlagBits2KHR 0x0000004000000000--- | 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' specifies the stage of the--- pipeline where the invocation mask image is read by the implementation--- to optimize the ray dispatch.-pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI             = PipelineStageFlagBits2KHR 0x0000010000000000--- | 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' specifies the subpass--- shading shader stage.-pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI             = PipelineStageFlagBits2KHR 0x0000008000000000--- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x0000000000100000--- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                     = PipelineStageFlagBits2KHR 0x0000000000080000--- | 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage--- of the pipeline where the fragment density map is read to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT       = PipelineStageFlagBits2KHR 0x0000000000800000--- | 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of--- the ray tracing shader stages.-pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR             = PipelineStageFlagBits2KHR 0x0000000000200000--- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the--- execution of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>.-pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR   = PipelineStageFlagBits2KHR 0x0000000002000000--- | 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies--- the stage of the pipeline where the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>--- is read to determine the fragment shading rate for portions of a--- rasterized primitive.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000400000--- | 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the--- pipeline where device-side generation of commands via--- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'--- is handled.-pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV              = PipelineStageFlagBits2KHR 0x0000000000020000--- | 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of--- the pipeline where the predicate of conditional rendering is consumed.-pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT          = PipelineStageFlagBits2KHR 0x0000000000040000--- | 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the--- pipeline where vertex attribute output values are written to the--- transform feedback buffers.-pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT             = PipelineStageFlagBits2KHR 0x0000000001000000--conNamePipelineStageFlagBits2KHR :: String-conNamePipelineStageFlagBits2KHR = "PipelineStageFlagBits2KHR"--enumPrefixPipelineStageFlagBits2KHR :: String-enumPrefixPipelineStageFlagBits2KHR = "PIPELINE_STAGE_2_"--showTablePipelineStageFlagBits2KHR :: [(PipelineStageFlagBits2KHR, String)]-showTablePipelineStageFlagBits2KHR =-  [ (PIPELINE_STAGE_2_NONE_KHR                              , "NONE_KHR")-  , (PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                   , "TOP_OF_PIPE_BIT_KHR")-  , (PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR                 , "DRAW_INDIRECT_BIT_KHR")-  , (PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR                  , "VERTEX_INPUT_BIT_KHR")-  , (PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR                 , "VERTEX_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR   , "TESSELLATION_CONTROL_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, "TESSELLATION_EVALUATION_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR               , "GEOMETRY_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR               , "FRAGMENT_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR          , "EARLY_FRAGMENT_TESTS_BIT_KHR")-  , (PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR           , "LATE_FRAGMENT_TESTS_BIT_KHR")-  , (PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR       , "COLOR_ATTACHMENT_OUTPUT_BIT_KHR")-  , (PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR                , "COMPUTE_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR                  , "ALL_TRANSFER_BIT_KHR")-  , (PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR                , "BOTTOM_OF_PIPE_BIT_KHR")-  , (PIPELINE_STAGE_2_HOST_BIT_KHR                          , "HOST_BIT_KHR")-  , (PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR                  , "ALL_GRAPHICS_BIT_KHR")-  , (PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR                  , "ALL_COMMANDS_BIT_KHR")-  , (PIPELINE_STAGE_2_COPY_BIT_KHR                          , "COPY_BIT_KHR")-  , (PIPELINE_STAGE_2_RESOLVE_BIT_KHR                       , "RESOLVE_BIT_KHR")-  , (PIPELINE_STAGE_2_BLIT_BIT_KHR                          , "BLIT_BIT_KHR")-  , (PIPELINE_STAGE_2_CLEAR_BIT_KHR                         , "CLEAR_BIT_KHR")-  , (PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                   , "INDEX_INPUT_BIT_KHR")-  , (PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR        , "VERTEX_ATTRIBUTE_INPUT_BIT_KHR")-  , (PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR     , "PRE_RASTERIZATION_SHADERS_BIT_KHR")-  , (PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI            , "INVOCATION_MASK_BIT_HUAWEI")-  , (PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI            , "SUBPASS_SHADING_BIT_HUAWEI")-  , (PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                    , "MESH_SHADER_BIT_NV")-  , (PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                    , "TASK_SHADER_BIT_NV")-  , (PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT      , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")-  , (PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR            , "RAY_TRACING_SHADER_BIT_KHR")-  , (PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR  , "ACCELERATION_STRUCTURE_BUILD_BIT_KHR")-  , (PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")-  , (PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV             , "COMMAND_PREPROCESS_BIT_NV")-  , (PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT         , "CONDITIONAL_RENDERING_BIT_EXT")-  , (PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT            , "TRANSFORM_FEEDBACK_BIT_EXT")-  ]--instance Show PipelineStageFlagBits2KHR where-  showsPrec = enumShowsPrec enumPrefixPipelineStageFlagBits2KHR-                            showTablePipelineStageFlagBits2KHR-                            conNamePipelineStageFlagBits2KHR-                            (\(PipelineStageFlagBits2KHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read PipelineStageFlagBits2KHR where-  readPrec = enumReadPrec enumPrefixPipelineStageFlagBits2KHR-                          showTablePipelineStageFlagBits2KHR-                          conNamePipelineStageFlagBits2KHR-                          PipelineStageFlagBits2KHR---type SubmitFlagsKHR = SubmitFlagBitsKHR---- | VkSubmitFlagBitsKHR - Bitmask specifying behavior of a submission------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'SubmitFlagsKHR'-newtype SubmitFlagBitsKHR = SubmitFlagBitsKHR Flags-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'SUBMIT_PROTECTED_BIT_KHR' specifies that this batch is a protected--- submission.-pattern SUBMIT_PROTECTED_BIT_KHR = SubmitFlagBitsKHR 0x00000001--conNameSubmitFlagBitsKHR :: String-conNameSubmitFlagBitsKHR = "SubmitFlagBitsKHR"--enumPrefixSubmitFlagBitsKHR :: String-enumPrefixSubmitFlagBitsKHR = "SUBMIT_PROTECTED_BIT_KHR"--showTableSubmitFlagBitsKHR :: [(SubmitFlagBitsKHR, String)]-showTableSubmitFlagBitsKHR = [(SUBMIT_PROTECTED_BIT_KHR, "")]--instance Show SubmitFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixSubmitFlagBitsKHR-                            showTableSubmitFlagBitsKHR-                            conNameSubmitFlagBitsKHR-                            (\(SubmitFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)--instance Read SubmitFlagBitsKHR where-  readPrec =-    enumReadPrec enumPrefixSubmitFlagBitsKHR showTableSubmitFlagBitsKHR conNameSubmitFlagBitsKHR SubmitFlagBitsKHR+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+--     -   Tobias Hector+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_synchronization2] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_synchronization2 extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-12-03+--+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+--+--     -   Interacts with @VK_KHR_create_renderpass2@+--+-- [__Contributors__]+--+--     -   Tobias Hector+--+-- == Description+--+-- This extension modifies the original core synchronization APIs to+-- simplify the interface and improve usability of these APIs. It also adds+-- new pipeline stage and access flag types that extend into the 64-bit+-- range, as we have run out within the 32-bit range. The new flags are+-- identical to the old values within the 32-bit range, with new stages and+-- bits beyond that.+--+-- Pipeline stages and access flags are now specified together in memory+-- barrier structures, making the connection between the two more obvious.+-- Additionally, scoping the pipeline stages into the barrier structs+-- allows the use of the @MEMORY_READ@ and @MEMORY_WRITE@ flags without+-- sacrificing precision. The per-stage access flags should be used to+-- disambiguate specific accesses in a given stage or set of stages - for+-- instance, between uniform reads and sampling operations.+--+-- Layout transitions have been simplified as well; rather than requiring a+-- different set of layouts for depth\/stencil\/color attachments, there+-- are generic 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' and+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' layouts which are contextually+-- applied based on the image format. For example, for a depth format+-- image, 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is equivalent to+-- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' also functionally replaces+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'.+--+-- Events are now more efficient, because they include memory dependency+-- information when you set them on the device. Previously, this+-- information was only known when waiting on an event, so the dependencies+-- could not be satisfied until the wait occurred. That sometimes meant+-- stalling the pipeline when the wait occurred. The new API provides+-- enough information for implementations to satisfy these dependencies in+-- parallel with other tasks.+--+-- Queue submission has been changed to wrap command buffers and semaphores+-- in extensible structures, which incorporate changes from Vulkan 1.1,+-- @VK_KHR_device_group@, and @VK_KHR_timeline_semaphore@. This also adds a+-- pipeline stage to the semaphore signal operation, mirroring the existing+-- pipeline stage specification for wait operations.+--+-- Other miscellaneous changes include:+--+-- -   Events can now be specified as interacting only with the device,+--     allowing more efficient access to the underlying object.+--+-- -   Image memory barriers that do not perform an image layout transition+--     can be specified by setting @oldLayout@ equal to @newLayout@.+--+--     -   E.g. the old and new layout can both be set to+--         'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',+--         without discarding data in the image.+--+-- -   Queue family ownership transfer parameters are simplified in some+--     cases.+--+-- -   Where two synchronization commands need to be matched up (queue+--     transfer operations, events), the dependency information specified+--     in each place must now match completely for consistency.+--+-- -   Extensions with commands or functions with a+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     parameter have had those APIs replaced with equivalents using+--     'PipelineStageFlags2KHR'.+--+-- -   The new event and barrier interfaces are now more extensible for+--     future changes.+--+-- -   Relevant pipeline stage masks can now be specified as empty with the+--     new 'PIPELINE_STAGE_NONE_KHR' and+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_NONE_KHR'+--     values.+--+-- -   'MemoryBarrier2KHR' can be chained to+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',+--     overriding the original 32-bit stage and access masks.+--+-- == New Base Types+--+-- -   'Vulkan.Core10.FundamentalTypes.Flags64'+--+-- == New Commands+--+-- -   'cmdPipelineBarrier2KHR'+--+-- -   'cmdResetEvent2KHR'+--+-- -   'cmdSetEvent2KHR'+--+-- -   'cmdWaitEvents2KHR'+--+-- -   'cmdWriteTimestamp2KHR'+--+-- -   'queueSubmit2KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>+-- is supported:+--+-- -   'cmdWriteBufferMarker2AMD'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>+-- is supported:+--+-- -   'getQueueCheckpointData2NV'+--+-- == New Structures+--+-- -   'BufferMemoryBarrier2KHR'+--+-- -   'CommandBufferSubmitInfoKHR'+--+-- -   'DependencyInfoKHR'+--+-- -   'ImageMemoryBarrier2KHR'+--+-- -   'SemaphoreSubmitInfoKHR'+--+-- -   'SubmitInfo2KHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceSynchronization2FeaturesKHR'+--+-- -   Extending+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2':+--+--     -   'MemoryBarrier2KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>+-- is supported:+--+-- -   'CheckpointData2NV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':+--+--     -   'QueueFamilyCheckpointProperties2NV'+--+-- == New Enums+--+-- -   'AccessFlagBits2KHR'+--+-- -   'PipelineStageFlagBits2KHR'+--+-- -   'SubmitFlagBitsKHR'+--+-- == New Bitmasks+--+-- -   'AccessFlags2KHR'+--+-- -   'PipelineStageFlags2KHR'+--+-- -   'SubmitFlagsKHR'+--+-- == New Enum Constants+--+-- -   'KHR_SYNCHRONIZATION_2_EXTENSION_NAME'+--+-- -   'KHR_SYNCHRONIZATION_2_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':+--+--     -   'ACCESS_NONE_KHR'+--+-- -   Extending+--     'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits':+--+--     -   'EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':+--+--     -   'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+--+--     -   'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':+--+--     -   'PIPELINE_STAGE_NONE_KHR'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'+--+--     -   'STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'+--+--     -   'STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'+--+--     -   'STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'+--+--     -   'STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'+--+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'+--+--     -   'STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'+--+--     -   'STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>+-- is supported:+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>+-- is supported:+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- If+-- <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.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV'+--+--     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV'+--+--     -   'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>+-- is supported:+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- == Examples+--+-- See+-- <https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples>+--+-- == Version History+--+-- -   Revision 1, 2020-12-03 (Tobias Hector)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'AccessFlagBits2KHR', 'AccessFlags2KHR', 'BufferMemoryBarrier2KHR',+-- 'CommandBufferSubmitInfoKHR', 'DependencyInfoKHR',+-- 'Vulkan.Core10.FundamentalTypes.Flags64', 'ImageMemoryBarrier2KHR',+-- 'MemoryBarrier2KHR', 'PhysicalDeviceSynchronization2FeaturesKHR',+-- 'PipelineStageFlagBits2KHR', 'PipelineStageFlags2KHR',+-- 'SemaphoreSubmitInfoKHR', 'SubmitFlagBitsKHR', 'SubmitFlagsKHR',+-- 'SubmitInfo2KHR', 'cmdPipelineBarrier2KHR', 'cmdResetEvent2KHR',+-- 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR', 'cmdWriteTimestamp2KHR',+-- 'queueSubmit2KHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_synchronization2  ( cmdWriteBufferMarker2AMD+                                                  , getQueueCheckpointData2NV+                                                  , pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR+                                                  , pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR+                                                  , pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR+                                                  , pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR+                                                  , pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR+                                                  , pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR+                                                  , pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR+                                                  , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR+                                                  , pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR+                                                  , pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR+                                                  , pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR+                                                  , pattern PIPELINE_STAGE_NONE_KHR+                                                  , pattern ACCESS_NONE_KHR+                                                  , pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV+                                                  , pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV+                                                  , pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV+                                                  , pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV+                                                  , pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV+                                                  , pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV+                                                  , cmdSetEvent2KHR+                                                  , cmdResetEvent2KHR+                                                  , cmdWaitEvents2KHR+                                                  , cmdPipelineBarrier2KHR+                                                  , queueSubmit2KHR+                                                  , cmdWriteTimestamp2KHR+                                                  , QueueFamilyCheckpointProperties2NV(..)+                                                  , CheckpointData2NV(..)+                                                  , AccessFlags2KHR+                                                  , PipelineStageFlags2KHR+                                                  , SubmitFlagsKHR+                                                  , AccessFlagBits2KHR+                                                  , PipelineStageFlagBits2KHR+                                                  , SubmitFlagBitsKHR+                                                  , MemoryBarrier2KHR+                                                  , ImageMemoryBarrier2KHR+                                                  , BufferMemoryBarrier2KHR+                                                  , DependencyInfoKHR+                                                  , SemaphoreSubmitInfoKHR+                                                  , CommandBufferSubmitInfoKHR+                                                  , SubmitInfo2KHR+                                                  , PhysicalDeviceSynchronization2FeaturesKHR+                                                  , KHR_SYNCHRONIZATION_2_SPEC_VERSION+                                                  , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION+                                                  , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+                                                  , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME+                                                  ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdPipelineBarrier2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdResetEvent2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdSetEvent2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWaitEvents2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWriteTimestamp2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (queueSubmit2)+import Vulkan.NamedType ((:::))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (CommandBufferSubmitInfo)+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)+import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarker2AMD))+import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointData2NV))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (ImageMemoryBarrier2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core10.Handles (Queue)+import Vulkan.Core10.Handles (Queue(..))+import Vulkan.Core10.Handles (Queue(Queue))+import Vulkan.Core10.Handles (Queue_T)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits)+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_NONE))+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlags)+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlagBits(EVENT_CREATE_DEVICE_ONLY_BIT))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_ATTACHMENT_OPTIMAL))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_READ_ONLY_OPTIMAL))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_NONE))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWriteBufferMarker2AMD+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()++-- | vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value+-- into a buffer+--+-- = Description+--+-- The command will write the 32-bit marker value into the buffer only+-- after all preceding commands have finished executing up to at least the+-- specified pipeline stage. This includes the completion of other+-- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified+-- pipeline stages occur either at the same time or earlier than this+-- command’s specified @stage@.+--+-- While consecutive buffer marker writes with the same @stage@ parameter+-- implicitly complete in submission order, memory and execution+-- dependencies between buffer marker writes and other operations /must/+-- still be explicitly ordered using synchronization commands. The access+-- scope for buffer marker writes falls under the+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the+-- pipeline stages for identifying the synchronization scope /must/ include+-- both @stage@ and+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.+--+-- Note+--+-- Similar to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',+-- if an implementation is unable to write a marker at any specific+-- pipeline stage, it /may/ instead do so at any logically later stage.+--+-- Note+--+-- Implementations /may/ only support a limited number of pipelined marker+-- write operations in flight at a given time. Thus an excessive number of+-- marker write operations /may/ degrade command execution performance.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03929# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03930# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03931# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03934# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04956# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     feature is not enabled, @stage@ /must/ not contain+--     'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04957# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+--     feature is not enabled, @stage@ /must/ not contain+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include+--     only a single pipeline stage+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-03895# @stage@ /must/ include+--     only stages that are valid for the queue family that was used to+--     create the command pool that @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896# @dstOffset@ /must/+--     be less than or equal to the size of @dstBuffer@ minus @4@+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897# @dstBuffer@ /must/+--     have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899# @dstOffset@ /must/+--     be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-parameter# @stage@ /must/ be+--     a valid combination of+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+--     values+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter# @dstBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-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-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdWriteBufferMarker2AMD-commonparent# Both of+--     @commandBuffer@, and @dstBuffer@ /must/ have been created,+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |+-- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |+-- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'+cmdWriteBufferMarker2AMD :: forall io+                          . (MonadIO io)+                         => -- | @commandBuffer@ is the command buffer into which the command will be+                            -- recorded.+                            CommandBuffer+                         -> -- | @stage@ specifies the pipeline stage whose completion triggers the+                            -- marker write.+                            PipelineStageFlags2+                         -> -- | @dstBuffer@ is the buffer where the marker will be written.+                            ("dstBuffer" ::: Buffer)+                         -> -- | @dstOffset@ is the byte offset into the buffer where the marker will be+                            -- written.+                            ("dstOffset" ::: DeviceSize)+                         -> -- | @marker@ is the 32-bit value of the marker.+                            ("marker" ::: Word32)+                         -> io ()+cmdWriteBufferMarker2AMD commandBuffer stage dstBuffer dstOffset marker = liftIO $ do+  let vkCmdWriteBufferMarker2AMDPtr = pVkCmdWriteBufferMarker2AMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdWriteBufferMarker2AMDPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarker2AMD is null" Nothing Nothing+  let vkCmdWriteBufferMarker2AMD' = mkVkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMDPtr+  traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD' (commandBufferHandle (commandBuffer)) (stage) (dstBuffer) (dstOffset) (marker))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetQueueCheckpointData2NV+  :: FunPtr (Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()) -> Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()++-- | vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data+--+-- = Description+--+-- If @pCheckpointData@ is @NULL@, then the number of checkpoint markers+-- available is returned in @pCheckpointDataCount@. Otherwise,+-- @pCheckpointDataCount@ /must/ point to a variable set by the user to the+-- number of elements in the @pCheckpointData@ array, and on return the+-- variable is overwritten with the number of structures actually written+-- to @pCheckpointData@.+--+-- If @pCheckpointDataCount@ is less than the number of checkpoint markers+-- available, at most @pCheckpointDataCount@ structures will be written.+--+-- == Valid Usage+--+-- -   #VUID-vkGetQueueCheckpointData2NV-queue-03892# The device that+--     @queue@ belongs to /must/ be in the lost state+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetQueueCheckpointData2NV-queue-parameter# @queue@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Queue' handle+--+-- -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter#+--     @pCheckpointDataCount@ /must/ be a valid pointer to a @uint32_t@+--     value+--+-- -   #VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter# If the+--     value referenced by @pCheckpointDataCount@ is not @0@, and+--     @pCheckpointData@ is not @NULL@, @pCheckpointData@ /must/ be a valid+--     pointer to an array of @pCheckpointDataCount@ 'CheckpointData2NV'+--     structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,+-- 'CheckpointData2NV', 'Vulkan.Core10.Handles.Queue'+getQueueCheckpointData2NV :: forall io+                           . (MonadIO io)+                          => -- | @queue@ is the 'Vulkan.Core10.Handles.Queue' object the caller would+                             -- like to retrieve checkpoint data for+                             Queue+                          -> io (("checkpointData" ::: Vector CheckpointData2NV))+getQueueCheckpointData2NV queue = liftIO . evalContT $ do+  let vkGetQueueCheckpointData2NVPtr = pVkGetQueueCheckpointData2NV (case queue of Queue{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetQueueCheckpointData2NVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueueCheckpointData2NV is null" Nothing Nothing+  let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr+  let queue' = queueHandle (queue)+  pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free+  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) (nullPtr))+  pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount+  pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointData2NV ((fromIntegral (pCheckpointDataCount)) * 32)) free+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointData2NV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]+  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) ((pPCheckpointData)))+  pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount+  pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointData2NV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointData2NV)))+  pure $ (pCheckpointData')+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"+pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_MEMORY_BARRIER_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR"+pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = STRUCTURE_TYPE_DEPENDENCY_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"+pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = STRUCTURE_TYPE_SUBMIT_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR"+pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES+++-- No documentation found for TopLevel "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"+pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR = EVENT_CREATE_DEVICE_ONLY_BIT+++-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR"+pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = IMAGE_LAYOUT_READ_ONLY_OPTIMAL+++-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR"+pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = IMAGE_LAYOUT_ATTACHMENT_OPTIMAL+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_NONE_KHR"+pattern PIPELINE_STAGE_NONE_KHR = PIPELINE_STAGE_NONE+++-- No documentation found for TopLevel "VK_ACCESS_NONE_KHR"+pattern ACCESS_NONE_KHR = ACCESS_NONE+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV"+pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV"+pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV"+pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV"+pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR+++-- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV"+pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR+++-- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV"+pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR+++-- No documentation found for TopLevel "vkCmdSetEvent2KHR"+cmdSetEvent2KHR = cmdSetEvent2+++-- No documentation found for TopLevel "vkCmdResetEvent2KHR"+cmdResetEvent2KHR = cmdResetEvent2+++-- No documentation found for TopLevel "vkCmdWaitEvents2KHR"+cmdWaitEvents2KHR = cmdWaitEvents2+++-- No documentation found for TopLevel "vkCmdPipelineBarrier2KHR"+cmdPipelineBarrier2KHR = cmdPipelineBarrier2+++-- No documentation found for TopLevel "vkQueueSubmit2KHR"+queueSubmit2KHR = queueSubmit2+++-- No documentation found for TopLevel "vkCmdWriteTimestamp2KHR"+cmdWriteTimestamp2KHR = cmdWriteTimestamp2+++-- | VkQueueFamilyCheckpointProperties2NV - Return structure for queue family+-- checkpoint information query+--+-- = Description+--+-- Additional queue family information can be queried by setting+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2'::@pNext@+-- to point to a 'QueueFamilyCheckpointProperties2NV' structure.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV+  { -- | @checkpointExecutionStageMask@ is a mask indicating which pipeline+    -- stages the implementation can execute checkpoint markers in.+    checkpointExecutionStageMask :: PipelineStageFlags2 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (QueueFamilyCheckpointProperties2NV)+#endif+deriving instance Show QueueFamilyCheckpointProperties2NV++instance ToCStruct QueueFamilyCheckpointProperties2NV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p QueueFamilyCheckpointProperties2NV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (checkpointExecutionStageMask)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)+    f++instance FromCStruct QueueFamilyCheckpointProperties2NV where+  peekCStruct p = do+    checkpointExecutionStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+    pure $ QueueFamilyCheckpointProperties2NV+             checkpointExecutionStageMask++instance Storable QueueFamilyCheckpointProperties2NV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero QueueFamilyCheckpointProperties2NV where+  zero = QueueFamilyCheckpointProperties2NV+           zero+++-- | VkCheckpointData2NV - Return structure for command buffer checkpoint+-- data+--+-- == Valid Usage (Implicit)+--+-- The stages at which a checkpoint marker /can/ be executed are+-- implementation-defined and /can/ be queried by calling+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2'.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getQueueCheckpointData2NV'+data CheckpointData2NV = CheckpointData2NV+  { -- | @stage@ indicates a single pipeline stage which the checkpoint marker+    -- data refers to.+    stage :: PipelineStageFlags2+  , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker+    -- executed in the stage that @stage@ refers to.+    checkpointMarker :: Ptr ()+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CheckpointData2NV)+#endif+deriving instance Show CheckpointData2NV++instance ToCStruct CheckpointData2NV where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CheckpointData2NV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (stage)+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (checkpointMarker)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+    f++instance FromCStruct CheckpointData2NV where+  peekCStruct p = do+    stage <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+    pCheckpointMarker <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+    pure $ CheckpointData2NV+             stage pCheckpointMarker++instance Storable CheckpointData2NV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CheckpointData2NV where+  zero = CheckpointData2NV+           zero+           zero+++-- No documentation found for TopLevel "VkAccessFlags2KHR"+type AccessFlags2KHR = AccessFlags2+++-- No documentation found for TopLevel "VkPipelineStageFlags2KHR"+type PipelineStageFlags2KHR = PipelineStageFlags2+++-- No documentation found for TopLevel "VkSubmitFlagsKHR"+type SubmitFlagsKHR = SubmitFlags+++-- No documentation found for TopLevel "VkAccessFlagBits2KHR"+type AccessFlagBits2KHR = AccessFlagBits2+++-- No documentation found for TopLevel "VkPipelineStageFlagBits2KHR"+type PipelineStageFlagBits2KHR = PipelineStageFlagBits2+++-- No documentation found for TopLevel "VkSubmitFlagBitsKHR"+type SubmitFlagBitsKHR = SubmitFlagBits+++-- No documentation found for TopLevel "VkMemoryBarrier2KHR"+type MemoryBarrier2KHR = MemoryBarrier2+++-- No documentation found for TopLevel "VkImageMemoryBarrier2KHR"+type ImageMemoryBarrier2KHR = ImageMemoryBarrier2+++-- No documentation found for TopLevel "VkBufferMemoryBarrier2KHR"+type BufferMemoryBarrier2KHR = BufferMemoryBarrier2+++-- No documentation found for TopLevel "VkDependencyInfoKHR"+type DependencyInfoKHR = DependencyInfo+++-- No documentation found for TopLevel "VkSemaphoreSubmitInfoKHR"+type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo+++-- No documentation found for TopLevel "VkCommandBufferSubmitInfoKHR"+type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo+++-- No documentation found for TopLevel "VkSubmitInfo2KHR"+type SubmitInfo2KHR = SubmitInfo2+++-- No documentation found for TopLevel "VkPhysicalDeviceSynchronization2FeaturesKHR"+type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features   type KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Tobias Hector@@ -35,6 +40,8 @@ -- -- [__Interactions and External Dependencies__] --+--     -   Promoted to Vulkan 1.3 Core+-- --     -   Interacts with @VK_KHR_create_renderpass2@ -- -- [__Contributors__]@@ -60,16 +67,12 @@ -- -- Layout transitions have been simplified as well; rather than requiring a -- different set of layouts for depth\/stencil\/color attachments, there--- are generic--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'--- and 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- layouts which are contextually applied based on the image format. For--- example, for a depth format image,--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is--- equivalent to+-- are generic 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' and+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' layouts which are contextually+-- applied based on the image format. For example, for a depth format+-- image, 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is equivalent to -- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- also functionally replaces+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' also functionally replaces -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'. -- -- Events are now more efficient, because they include memory dependency@@ -115,9 +118,9 @@ --     future changes. -- -- -   Relevant pipeline stage masks can now be specified as empty with the---     new---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'---     and 'PIPELINE_STAGE_2_NONE_KHR' values.+--     new 'PIPELINE_STAGE_NONE_KHR' and+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_NONE_KHR'+--     values. -- -- -   'MemoryBarrier2KHR' can be chained to --     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',@@ -213,123 +216,129 @@ -- -- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': -----     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_NONE_KHR'+--     -   'ACCESS_NONE_KHR' -- -- -   Extending --     'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits': -----     -   'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+--     -   'EVENT_CREATE_DEVICE_ONLY_BIT_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': -----     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+--     -   'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' -----     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--     -   'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' -- -- -   Extending --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': -----     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'+--     -   'PIPELINE_STAGE_NONE_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'+--     -   'STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'+--     -   'STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'+--     -   'STRUCTURE_TYPE_DEPENDENCY_INFO_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'+--     -   'STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'+--     -   'STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'+--     -   'STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'+--     -   'STRUCTURE_TYPE_SUBMIT_INFO_2_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' -----     -   'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' -----     -   'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' -----     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline> -- is supported: ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>@@ -345,37 +354,40 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -----     -   'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' -----     -   'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader> -- is supported: ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -----     -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' -----     -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -- --     -   'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV' -- --     -   'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- --     -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV' --@@ -385,14 +397,21 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image> -- is supported: ----- -   Extending 'AccessFlagBits2KHR':+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -- --     -   'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV' ----- -   Extending 'PipelineStageFlagBits2KHR':+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- --     -   'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Examples -- -- See@@ -419,39 +438,18 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_synchronization2  ( BufferMemoryBarrier2KHR-                                                  , CheckpointData2NV-                                                  , CommandBufferSubmitInfoKHR-                                                  , DependencyInfoKHR-                                                  , ImageMemoryBarrier2KHR-                                                  , MemoryBarrier2KHR-                                                  , PhysicalDeviceSynchronization2FeaturesKHR+module Vulkan.Extensions.VK_KHR_synchronization2  ( CheckpointData2NV                                                   , QueueFamilyCheckpointProperties2NV-                                                  , SemaphoreSubmitInfoKHR-                                                  , SubmitInfo2KHR-                                                  , PipelineStageFlags2KHR-                                                  , PipelineStageFlagBits2KHR                                                   ) 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 BufferMemoryBarrier2KHR -instance ToCStruct BufferMemoryBarrier2KHR-instance Show BufferMemoryBarrier2KHR--instance FromCStruct BufferMemoryBarrier2KHR-- data CheckpointData2NV  instance ToCStruct CheckpointData2NV@@ -460,73 +458,10 @@ instance FromCStruct CheckpointData2NV  -data CommandBufferSubmitInfoKHR--instance ToCStruct CommandBufferSubmitInfoKHR-instance Show CommandBufferSubmitInfoKHR--instance FromCStruct CommandBufferSubmitInfoKHR---data DependencyInfoKHR--instance ToCStruct DependencyInfoKHR-instance Show DependencyInfoKHR--instance FromCStruct DependencyInfoKHR---type role ImageMemoryBarrier2KHR nominal-data ImageMemoryBarrier2KHR (es :: [Type])--instance (Extendss ImageMemoryBarrier2KHR es, PokeChain es) => ToCStruct (ImageMemoryBarrier2KHR es)-instance Show (Chain es) => Show (ImageMemoryBarrier2KHR es)--instance (Extendss ImageMemoryBarrier2KHR es, PeekChain es) => FromCStruct (ImageMemoryBarrier2KHR es)---data MemoryBarrier2KHR--instance ToCStruct MemoryBarrier2KHR-instance Show MemoryBarrier2KHR--instance FromCStruct MemoryBarrier2KHR---data PhysicalDeviceSynchronization2FeaturesKHR--instance ToCStruct PhysicalDeviceSynchronization2FeaturesKHR-instance Show PhysicalDeviceSynchronization2FeaturesKHR--instance FromCStruct PhysicalDeviceSynchronization2FeaturesKHR-- data QueueFamilyCheckpointProperties2NV  instance ToCStruct QueueFamilyCheckpointProperties2NV instance Show QueueFamilyCheckpointProperties2NV  instance FromCStruct QueueFamilyCheckpointProperties2NV---data SemaphoreSubmitInfoKHR--instance ToCStruct SemaphoreSubmitInfoKHR-instance Show SemaphoreSubmitInfoKHR--instance FromCStruct SemaphoreSubmitInfoKHR---type role SubmitInfo2KHR nominal-data SubmitInfo2KHR (es :: [Type])--instance (Extendss SubmitInfo2KHR es, PokeChain es) => ToCStruct (SubmitInfo2KHR es)-instance Show (Chain es) => Show (SubmitInfo2KHR es)--instance (Extendss SubmitInfo2KHR es, PeekChain es) => FromCStruct (SubmitInfo2KHR es)---type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR--data PipelineStageFlagBits2KHR 
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -283,7 +283,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_timeline_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs view
@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_uniform_buffer_standard_layout Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_uniform_buffer_standard_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_variable_pointers.hs view
@@ -87,7 +87,7 @@ -- -- All functionality in this extension is included in core Vulkan 1.1, with -- the KHR suffix omitted, however support for the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-variablePointersStorageBuffer variablePointersStorageBuffer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variablePointersStorageBuffer variablePointersStorageBuffer> -- feature is made optional. The original type, enum and command names are -- still available as aliases of the core functionality. --@@ -115,9 +115,9 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointers VariablePointers>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointers VariablePointers> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer> -- -- == Issues --@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_variable_pointers Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_variable_pointers Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs view
@@ -63,7 +63,7 @@ -- == Description -- -- The @VK_KHR_vulkan_memory_model@ extension allows use of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-model Vulkan Memory Model>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model Vulkan Memory Model>, -- which formally defines how to synchronize memory accesses to the same -- memory locations performed by multiple shader invocations. --@@ -102,7 +102,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VulkanMemoryModel VulkanMemoryModelKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VulkanMemoryModel VulkanMemoryModelKHR> -- -- == Version History --@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -322,7 +322,7 @@                            WaylandSurfaceCreateInfoKHR                         -> -- | @pAllocator@ is the allocator used for host memory allocated for the                            -- surface object when there is no more specific allocator available (see-                           -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                           -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                            ("allocator" ::: Maybe AllocationCallbacks)                         -> io (SurfaceKHR) createWaylandSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot view
@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs view
@@ -56,7 +56,7 @@ -- == New Structures -- -- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',---     'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- --     -   'Win32KeyedMutexAcquireReleaseInfoKHR' --@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot view
@@ -56,7 +56,7 @@ -- == New Structures -- -- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',---     'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- --     -   'Win32KeyedMutexAcquireReleaseInfoKHR' --@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -208,7 +208,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -347,7 +347,7 @@                          Win32SurfaceCreateInfoKHR                       -> -- | @pAllocator@ is the allocator used for host memory allocated for the                          -- surface object when there is no more specific allocator available (see-                         -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                         -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                          ("allocator" ::: Maybe AllocationCallbacks)                       -> io (SurfaceKHR) createWin32SurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot view
@@ -208,7 +208,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -94,11 +94,11 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR> -- -- == Version History --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -94,11 +94,11 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR> -- -- == Version History --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -303,7 +303,7 @@                        XcbSurfaceCreateInfoKHR                     -> -- | @pAllocator@ is the allocator used for host memory allocated for the                        -- surface object when there is no more specific allocator available (see-                       -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                       -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                        ("allocator" ::: Maybe AllocationCallbacks)                     -> io (SurfaceKHR) createXcbSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot view
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -305,7 +305,7 @@                         XlibSurfaceCreateInfoKHR                      -> -- | @pAllocator@ is the allocator used for host memory allocated for the                         -- surface object when there is no more specific allocator available (see-                        -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                        -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                         ("allocator" ::: Maybe AllocationCallbacks)                      -> io (SurfaceKHR) createXlibSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot view
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -23,6 +23,11 @@ -- --     -   Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- --     -   Alan Baker@@ -33,12 +38,13 @@ -- [__Last Modified Date__] --     2020-11-18 --+-- [__Interactions and External Dependencies__]+--+--     -   Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] --     No known IP claims. ----- [__Interactions and External Dependencies__]---     None--- -- [__Contributors__] -- --     -   Alan Baker, Google@@ -71,8 +77,14 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- -   Revision 1, 2020-11-18 (Alan Baker)@@ -86,109 +98,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory  ( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(..)+module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR+                                                                  , PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR                                                                   , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION                                                                   , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION                                                                   , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME                                                                   , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME                                                                   ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR))--- | VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR - Structure--- describing support for zero initialization of workgroup memory by an--- implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'--- 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. 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'--- /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_KHR_zero_initialize_workgroup_memory VK_KHR_zero_initialize_workgroup_memory>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-  { -- | #features-shaderZeroInitializeWorkgroupMemory#-    -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the-    -- implementation supports initializing a variable in Workgroup storage-    -- class.-    shaderZeroInitializeWorkgroupMemory :: Bool }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+import Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES -instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    f -instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where-  peekCStruct p = do-    shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    pure $ PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-             (bool32ToBool shaderZeroInitializeWorkgroupMemory)--instance Storable PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where-  zero = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR"+type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures   type KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot
@@ -1,105 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_zero_initialize_workgroup_memory - device extension------ == VK_KHR_zero_initialize_workgroup_memory------ [__Name String__]---     @VK_KHR_zero_initialize_workgroup_memory@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     326------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------     -   Alan Baker---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_zero_initialize_workgroup_memory] @alan-baker%0A<<Here describe the issue or question you have about the VK_KHR_zero_initialize_workgroup_memory extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-11-18------ [__IP Status__]---     No known IP claims.------ [__Interactions and External Dependencies__]---     None------ [__Contributors__]------     -   Alan Baker, Google------     -   Jeff Bolz, Nvidia------     -   Jason Ekstrand, Intel------ == Description------ This extension allows the use of a null constant initializer on shader--- Workgroup memory variables, allowing implementations to expose any--- special hardware or instructions they may have. Zero initialization is--- commonly used by applications running untrusted content (e.g. web--- browsers) as way of defeating memory-scraping attacks.------ == New Structures------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'------ == New Enum Constants------ -   'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME'------ -   'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'------ == Version History------ -   Revision 1, 2020-11-18 (Alan Baker)------     -   Internal draft version------ == See Also------ 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory  (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR--instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR--instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-
src/Vulkan/Extensions/VK_MVK_ios_surface.hs view
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -207,7 +207,7 @@ -- -   @pAllocator@ is the allocator used for host memory allocated for the --     surface object when there is no more specific allocator available --     (see---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). -- -- -   @pSurface@ is a pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR' --     handle in which the created surface object is returned.
src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot view
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_MVK_macos_surface.hs view
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -209,7 +209,7 @@ -- -   @pAllocator@ is the allocator used for host memory allocated for the --     surface object when there is no more specific allocator available --     (see---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). -- -- -   @pSurface@ is a pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR' --     handle in which the created surface object is returned.
src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot view
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -105,7 +105,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -249,7 +249,7 @@                      ViSurfaceCreateInfoNN                   -> -- | @pAllocator@ is the allocator used for host memory allocated for the                      -- surface object when there is no more specific allocator available (see-                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                     -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                      ("allocator" ::: Maybe AllocationCallbacks)                   -> io (SurfaceKHR) createViSurfaceNN instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot view
@@ -105,7 +105,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_binary_import.hs view
@@ -400,7 +400,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot view
@@ -400,7 +400,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_image_view_handle.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -57,14 +57,14 @@ -- This extension adds a new way to write shaders to be used with multiview -- subpasses, where the attributes for all views are written out by a -- single invocation of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>. -- Related SPIR-V and GLSL extensions -- @SPV_NVX_multiview_per_view_attributes@ and -- @GL_NVX_multiview_per_view_attributes@ introduce per-view position and -- viewport mask attributes arrays, and this extension defines how those -- per-view attribute arrays are interpreted by Vulkan. Pipelines using -- per-view attributes /may/ only execute the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages> -- once for all views rather than once per-view, which reduces redundant -- shading work. --@@ -113,13 +113,13 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV> -- -- == Examples --@@ -153,7 +153,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot view
@@ -57,14 +57,14 @@ -- This extension adds a new way to write shaders to be used with multiview -- subpasses, where the attributes for all views are written out by a -- single invocation of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>. -- Related SPIR-V and GLSL extensions -- @SPV_NVX_multiview_per_view_attributes@ and -- @GL_NVX_multiview_per_view_attributes@ introduce per-view position and -- viewport mask attributes arrays, and this extension defines how those -- per-view attribute arrays are interpreted by Vulkan. Pipelines using -- per-view attributes /may/ only execute the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages> -- once for all views rather than once per-view, which reduces redundant -- shading work. --@@ -113,13 +113,13 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV> -- -- == Examples --@@ -153,7 +153,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs view
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_acquire_winrt_display Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_acquire_winrt_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs view
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot view
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs view
@@ -84,9 +84,9 @@ -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV> -- -- == Issues --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -157,7 +157,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope> -- for more information. -- -- If the @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot view
@@ -84,9 +84,9 @@ -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV> -- -- == Issues --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs view
@@ -107,7 +107,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV> -- -- == Issues --@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot view
@@ -107,7 +107,7 @@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV> -- -- == Issues --@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs view
@@ -48,24 +48,24 @@ -- differs from a conventional image in the following ways: -- -- -   Texels are centered on integer coordinates. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations> -- -- -   Normalized coordinates are scaled using coord × (dim - 1) rather --     than coord × dim, where dim is the size of one dimension of the --     image. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>. -- -- -   Partial derivatives are scaled using coord × (dim - 1) rather than --     coord × dim. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>. -- -- -   Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉ --     rather than ⌊dim \/ 2⌋. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- -   The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. --     See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- This image organization is designed to facilitate a system like Ptex -- with separate textures for each face of a subdivision or polygon mesh.@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -213,7 +213,7 @@     -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing     -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'.     -- See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-images-corner-sampled Corner-Sampled Images>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled Corner-Sampled Images>.     cornerSampledImage :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot view
@@ -48,24 +48,24 @@ -- differs from a conventional image in the following ways: -- -- -   Texels are centered on integer coordinates. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations> -- -- -   Normalized coordinates are scaled using coord × (dim - 1) rather --     than coord × dim, where dim is the size of one dimension of the --     image. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>. -- -- -   Partial derivatives are scaled using coord × (dim - 1) rather than --     coord × dim. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>. -- -- -   Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉ --     rather than ⌊dim \/ 2⌋. See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- -   The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. --     See---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- This image organization is designed to facilitate a system like Ptex -- with separate textures for each face of a subdivision or polygon mesh.@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -326,7 +326,7 @@ data PhysicalDeviceCoverageReductionModeFeaturesNV = PhysicalDeviceCoverageReductionModeFeaturesNV   { -- | #features-coverageReductionMode# @coverageReductionMode@ indicates     -- whether the implementation supports coverage reduction modes. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-coverage-reduction Coverage Reduction>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction Coverage Reduction>.     coverageReductionMode :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -591,7 +591,7 @@ -- | 'COVERAGE_REDUCTION_MODE_TRUNCATE_NV' specifies that for color samples -- present in the color attachments, a color sample is covered if the pixel -- coverage sample with the same--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- i is covered; other pixel coverage samples are discarded. pattern COVERAGE_REDUCTION_MODE_TRUNCATE_NV = CoverageReductionModeNV 1 {-# complete COVERAGE_REDUCTION_MODE_MERGE_NV,
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot view
@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs view
@@ -171,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot view
@@ -171,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs view
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot view
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -288,7 +288,7 @@ pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV     = DeviceDiagnosticsConfigFlagBitsNV 0x00000002 -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV' enables -- automatic insertion of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#device-diagnostic-checkpoints diagnostic checkpoints>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-diagnostic-checkpoints diagnostic checkpoints> -- for draw calls, dispatches, trace rays, and copies. The CPU call stack -- at the time of the command will be associated as the marker data for the -- automatically inserted checkpoints.
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -540,7 +540,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -740,7 +740,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -796,7 +796,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -804,7 +804,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02697# For each set /n/ --     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'@@ -1007,50 +1007,50 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419# If the --     bound graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1058,11 +1058,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1070,11 +1070,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1082,11 +1082,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1094,11 +1094,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1106,11 +1106,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1118,21 +1118,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04876# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04877# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -1150,14 +1150,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727# If@@ -1181,7 +1181,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1190,7 +1190,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1199,7 +1199,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1208,7 +1208,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1217,7 +1217,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1226,7 +1226,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1235,61 +1235,61 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06180# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1298,7 +1298,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1311,11 +1311,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -1327,13 +1327,13 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1341,17 +1341,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1359,7 +1359,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188# If --     the currently bound pipeline was created without a@@ -1367,11 +1367,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -1380,37 +1380,37 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06189# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06190# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -1434,7 +1434,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420# If --     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this@@ -1450,7 +1450,7 @@ --     graphics pipeline was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic states enabled, then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this@@ -1458,7 +1458,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913# If the bound --     graphics pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' --     dynamic state enabled, then@@ -1486,7 +1486,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT' --     /must/ have been called in the current command buffer prior to this@@ -1524,7 +1524,7 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1617,7 +1617,7 @@ -- -- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1709,7 +1709,7 @@ -- -- -   #VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1797,7 +1797,7 @@ -- -- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1855,7 +1855,7 @@ -- -- -   #VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1903,7 +1903,7 @@                                   -- command layout.                                   IndirectCommandsLayoutCreateInfoNV                                -> -- | @pAllocator@ controls host memory allocation as described in the-                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io (IndirectCommandsLayoutNV)@@ -1963,7 +1963,7 @@ -- -- -   #VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2004,7 +2004,7 @@                                 -> -- | @indirectCommandsLayout@ is the layout to destroy.                                    IndirectCommandsLayoutNV                                 -> -- | @pAllocator@ controls host memory allocation as described in the-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                    -- chapter.                                    ("allocator" ::: Maybe AllocationCallbacks)                                 -> io ()@@ -2051,7 +2051,7 @@   { -- | #features-deviceGeneratedCommands# @deviceGeneratedCommands@ indicates     -- whether the implementation supports functionality to generate commands     -- on the device. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.     deviceGeneratedCommands :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -2372,7 +2372,7 @@ -- -- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887# --     The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot view
@@ -540,7 +540,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory.hs view
@@ -85,7 +85,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory.hs-boot view
@@ -85,7 +85,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs view
@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot view
@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs view
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot view
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_win32.hs view
@@ -85,7 +85,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot view
@@ -85,7 +85,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fill_rectangle.hs view
@@ -68,7 +68,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fill_rectangle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fill_rectangle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs view
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -143,7 +143,7 @@ -- fragment color output and, if so, which output is replaced. -- -- If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask> -- replaces the first component of the color value corresponding to the -- fragment shader output location with @Location@ equal to -- @coverageToColorLocation@ and @Index@ equal to zero. If the color
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot view
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs view
@@ -104,17 +104,17 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnv BaryCoordNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnv BaryCoordNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV> -- -- == New SPIR-V Decorations ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV> -- -- == Issues --@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -220,7 +220,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-barycentric Barycentric Interpolation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric Barycentric Interpolation> -- for more information. -- -- If the 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' structure is
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot view
@@ -104,17 +104,17 @@ -- -- == New Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnv BaryCoordNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnv BaryCoordNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV> -- -- == New SPIR-V Decorations ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV> -- -- == Issues --@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -170,7 +170,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -293,13 +293,13 @@ -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576# --     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> --     is not enabled, @shadingRate@ /must/ be --     'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV' -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577# --     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates> --     is not enabled, @shadingRate@ /must/ not be --     'FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV', --     'FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',@@ -308,37 +308,37 @@ -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578# --     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates> --     is not enabled, @shadingRate@ /must/ not be --     'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV' -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums> --     /must/ be enabled -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580# --     One of---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>, --     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> --     /must/ be enabled -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> --     is not enabled, @combinerOps@[0] /must/ be --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is not enabled, @combinerOps@[1] /must/ be --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps> --     limit is not supported, elements of @combinerOps@ /must/ be either --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' --     or@@ -401,12 +401,12 @@                                 -> -- | @combinerOps@ specifies a                                    -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'                                    -- determining how the-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,                                    -- and-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>                                    -- are-                                   -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+                                   -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>                                    -- for fragments generated by subsequent drawing commands.                                    ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))                                 -> io ()@@ -528,7 +528,7 @@ -- property. -- -- These properties are related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>. -- -- == Valid Usage (Implicit) --@@ -641,12 +641,12 @@   , -- | @combinerOps@ specifies     -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'     -- values determining how the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,     -- and-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>     -- are-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>     -- for fragments generated by drawing commands using the created pipeline.     combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)   }
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot view
@@ -170,7 +170,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs view
@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -228,7 +228,7 @@ -- @coverageModulationMode@ is 'COVERAGE_MODULATION_MODE_NONE_NV'. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode> -- is -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.COVERAGE_REDUCTION_MODE_TRUNCATE_NV', -- each color sample is associated with only a single coverage sample. In
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot view
@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs view
@@ -84,13 +84,13 @@ -- -- == New Variable Decoration ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-passthrough-passthrough PassthroughNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-passthrough PassthroughNV> --     in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-passthrough Geometry Shader Passthrough>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough Geometry Shader Passthrough> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV> -- -- == Issues --@@ -117,7 +117,7 @@ -- 2) How does interface matching work with passthrough geometry shaders? -- -- __RESOLVED__: This is described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-passthrough-interface Passthrough Interface Matching>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-interface Passthrough Interface Matching>. -- In GL when using passthough geometry shaders in separable mode, all -- inputs must also be explicitly assigned location layout qualifiers. In -- Vulkan all SPIR-V shader inputs (except built-ins) must also have@@ -201,7 +201,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_geometry_shader_passthrough Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_geometry_shader_passthrough Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_glsl_shader.hs view
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_glsl_shader Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_glsl_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -217,8 +217,8 @@   { -- | #features-inheritedViewportScissor2D# @inheritedViewportScissor2D@     -- indicates whether secondary command buffers can inherit most of the     -- dynamic state affected by-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',     -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT',     -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or     -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR', from a primary@@ -275,7 +275,7 @@ -- -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' ----- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT' --@@ -284,7 +284,7 @@ -- -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' ----- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- -- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.FALSE', then -- the command buffer does not inherit the listed dynamic state, and@@ -349,13 +349,13 @@ -- -- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedViewportScissor2D inherited viewport scissor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedViewportScissor2D inherited viewport scissor> --     feature is not enabled, @viewportScissor2D@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled and @viewportScissor2D@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', then @viewportDepthCount@ --     /must/ be @1@
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs view
@@ -51,20 +51,20 @@ -- attachments when all the color attachments in the render pass instance -- have 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling. This -- extension adds a new flag bit--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- that extends the existing--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatFeatureFlagBits2KHR' -- bits. This flag /can/ be set for renderable color formats in the -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- format properties structure member. Formats with the--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- flag /may/ be used as color attachments as long as all the color -- attachments in the render pass instance have -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling, and the -- formats their images views are created with have -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- which include--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'.+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'. -- This extension supports both dynamic rendering and traditional render -- passes. --@@ -91,9 +91,9 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- == Version History --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -117,9 +117,6 @@                                                         , pattern NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION                                                         , NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME                                                         , pattern NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME-                                                        , FormatFeatureFlagBits2KHR(..)-                                                        , FormatFeatureFlags2KHR-                                                        , Flags64                                                         ) where  import Foreign.Marshal.Alloc (allocaBytes)@@ -144,9 +141,6 @@ import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) -- | VkPhysicalDeviceLinearColorAttachmentFeaturesNV - Structure describing -- whether -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>@@ -178,7 +172,7 @@ data PhysicalDeviceLinearColorAttachmentFeaturesNV = PhysicalDeviceLinearColorAttachmentFeaturesNV   { -- | #features-linearColorAttachment# @linearColorAttachment@ indicates     -- whether the implementation supports renderable-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>     linearColorAttachment :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot view
@@ -51,20 +51,20 @@ -- attachments when all the color attachments in the render pass instance -- have 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling. This -- extension adds a new flag bit--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- that extends the existing--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatFeatureFlagBits2KHR' -- bits. This flag /can/ be set for renderable color formats in the -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- format properties structure member. Formats with the--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- flag /may/ be used as color attachments as long as all the color -- attachments in the render pass instance have -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling, and the -- formats their images views are created with have -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- which include--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'.+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'. -- This extension supports both dynamic rendering and traditional render -- passes. --@@ -91,9 +91,9 @@ -- is supported: -- -- -   Extending---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': -----     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- == Version History --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -65,7 +65,7 @@ -- generate these collections to be processed by fixed-function primitive -- assembly and rasterization logic. When task and mesh shaders are -- dispatched, they replace the core--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>, -- including vertex array attribute fetching, vertex shader processing, -- tessellation, and geometry shader processing. --@@ -125,21 +125,21 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV> -- -- -   (modified)@Position@ --@@ -175,7 +175,7 @@ -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV> -- -- == Issues --@@ -252,7 +252,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -357,7 +357,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -413,7 +413,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -421,7 +421,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -622,50 +622,50 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-03417# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMeshTasksNV-scissorCount-03418# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-03419# If the bound --     graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-04137# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -673,11 +673,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-04138# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -685,11 +685,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-04139# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -697,11 +697,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-04140# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -709,11 +709,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -721,11 +721,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -733,21 +733,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-04876# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-04877# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -765,14 +765,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-blendEnable-04727# If rasterization is@@ -795,7 +795,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06172# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -804,7 +804,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06173# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -813,7 +813,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06174# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -822,7 +822,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06175# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -831,7 +831,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06176# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -840,7 +840,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06177# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -849,61 +849,61 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-viewMask-06178# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06183# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -912,7 +912,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-imageView-06184# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -925,11 +925,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -941,13 +941,13 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -955,17 +955,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -973,7 +973,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188# If the --     currently bound pipeline was created without a@@ -981,11 +981,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -994,37 +994,37 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksNV-renderPass-06198# If the current render --     pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -1151,7 +1151,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1207,7 +1207,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -1215,7 +1215,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02697# For each set /n/ that --     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to@@ -1418,50 +1418,50 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419# If the bound --     graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1469,11 +1469,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1481,11 +1481,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -1493,11 +1493,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -1505,11 +1505,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1517,11 +1517,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -1529,21 +1529,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04876# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04877# If the bound graphics --     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -1561,14 +1561,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727# If@@ -1592,7 +1592,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1601,7 +1601,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1610,7 +1610,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1619,7 +1619,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1628,7 +1628,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -1637,7 +1637,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -1646,61 +1646,61 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1709,7 +1709,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -1722,11 +1722,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -1738,13 +1738,13 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1752,17 +1752,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1770,7 +1770,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188# If --     the currently bound pipeline was created without a@@ -1778,11 +1778,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -1791,37 +1791,37 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198# If the current --     render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -1992,7 +1992,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -2048,7 +2048,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -2056,7 +2056,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697# For each set /n/ --     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'@@ -2259,50 +2259,50 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419# If the --     bound graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic states enabled then both---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ match the @scissorCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -2310,11 +2310,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -2322,11 +2322,11 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic state enabled, then the bound graphics pipeline /must/ have@@ -2334,11 +2334,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140# If the --     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' --     dynamic states enabled then the @viewportCount@ parameter in the@@ -2346,11 +2346,11 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --     /must/ be greater than or equal to the @viewportCount@ parameter in --     the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -2358,11 +2358,11 @@ --     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142# --     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled and a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' --     structure chained from @VkPipelineVieportCreateInfo@, then the bound@@ -2370,21 +2370,21 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ --     greater or equal to the @viewportCount@ parameter in the last call --     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877# If the bound --     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command --@@ -2402,14 +2402,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, the bound graphics pipeline was created with --     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --     dynamic state enabled, and any of the shader stages of the bound --     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in, --     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ have been called in the current command buffer prior to this --     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --     /must/ be @1@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727# If@@ -2433,7 +2433,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -2442,7 +2442,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -2451,7 +2451,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -2460,7 +2460,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -2469,7 +2469,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pDepthAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pDepthAttachment@ is@@ -2478,7 +2478,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the @imageView@ member of @pStencilAttachment@ is not --     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of --     @pStencilAttachment@ is@@ -2487,61 +2487,61 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179# --     If the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound graphics pipeline /must/ have been created with --     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --     equal to---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180# --     If the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a 'Vulkan.Core10.Enums.Format.Format' equal to the --     corresponding element of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -2550,7 +2550,7 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     and --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently@@ -2563,11 +2563,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the corresponding element of the@@ -2579,13 +2579,13 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -2593,17 +2593,17 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created with a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the --     @depthStencilAttachmentSamples@ member of --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -2611,7 +2611,7 @@ --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188# --     If the currently bound pipeline was created without a@@ -2619,11 +2619,11 @@ --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --     with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ --     parameter greater than @0@, then each element of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ --     array with a @imageView@ not equal to --     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created --     with a sample count equal to the value of@@ -2632,37 +2632,37 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190# If --     the current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' --     structure, and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView --     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     used to create the currently bound graphics pipeline /must/ be equal --     to the sample count used to create---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198# If the --     current render pass instance was begun with---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', --     the currently bound pipeline /must/ have been created with a --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -2919,7 +2919,7 @@ data PhysicalDeviceMeshShaderPropertiesNV = PhysicalDeviceMeshShaderPropertiesNV   { -- | @maxDrawMeshTasksCount@ is the maximum number of local workgroups that     -- /can/ be launched by a single draw mesh tasks command. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-mesh-shading>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.     maxDrawMeshTasksCount :: Word32   , -- | @maxTaskWorkGroupInvocations@ is the maximum total number of task shader     -- invocations in a single local workgroup. The product of the X, Y, and Z
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -65,7 +65,7 @@ -- generate these collections to be processed by fixed-function primitive -- assembly and rasterization logic. When task and mesh shaders are -- dispatched, they replace the core--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>, -- including vertex array attribute fetching, vertex shader processing, -- tessellation, and geometry shader processing. --@@ -125,21 +125,21 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV> -- -- -   (modified)@Position@ --@@ -175,7 +175,7 @@ -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV> -- -- == Issues --@@ -252,7 +252,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -347,41 +347,41 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV> -- -- -   (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV> -- -- == Issues --@@ -461,7 +461,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -684,7 +684,7 @@ import Vulkan.Core10.Handles (PipelineCache) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo) import Vulkan.CStruct.Extends (PokeChain)@@ -915,7 +915,7 @@                                  -- structure.                                  AccelerationStructureCreateInfoNV                               -> -- | @pAllocator@ controls host memory allocation as described in the-                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                 -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io (AccelerationStructureNV)@@ -1012,7 +1012,7 @@                                -> -- | @accelerationStructure@ is the acceleration structure to destroy.                                   AccelerationStructureNV                                -> -- | @pAllocator@ controls host memory allocation as described in the-                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                                  -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io ()@@ -1140,12 +1140,12 @@ -- = Description -- -- Accesses to @src@ and @dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -1270,12 +1270,12 @@ -- -- Accesses to any of the acceleration structures listed in -- @pAccelerationStructures@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. --@@ -1412,12 +1412,12 @@ -- = Description -- -- Accesses to @dst@, @src@, and @scratch@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -1491,17 +1491,17 @@ -- -   #VUID-vkCmdBuildAccelerationStructureNV-update-03524# If @update@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', then objects that were --     previously active /must/ not be made inactive as per---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims> -- -- -   #VUID-vkCmdBuildAccelerationStructureNV-update-03525# If @update@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', then objects that were --     previously inactive /must/ not be made active as per---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims> -- -- -   #VUID-vkCmdBuildAccelerationStructureNV-update-03526# If @update@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', the @src@ and @dst@ objects --     /must/ either be the same object or not have any---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasing memory aliasing>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing memory aliasing> -- -- == Valid Usage (Implicit) --@@ -1655,7 +1655,7 @@ --     the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- -   #VUID-vkCmdTraceRaysNV-None-02691# If a --     'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1711,7 +1711,7 @@ --     or storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdTraceRaysNV-OpTypeImage-06424# Any --     'Vulkan.Core10.Handles.ImageView' or@@ -1719,7 +1719,7 @@ --     storage texel buffer where the image format field of the --     @OpTypeImage@ is @Unknown@ /must/ have image format features that --     support---     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- -   #VUID-vkCmdTraceRaysNV-None-02697# For each set /n/ that is --     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the@@ -1886,7 +1886,7 @@ -- -   #VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625# This command /must/ --     not cause a pipeline trace ray instruction to be executed from a --     shader invocation with a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth recursion depth>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth recursion depth> --     greater than the value of @maxRecursionDepth@ used to create the --     bound ray tracing pipeline --@@ -2211,7 +2211,7 @@ -- -- -   #VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903# If --     @pipelineCache@ was created with---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', --     host access to @pipelineCache@ /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> --@@ -2251,7 +2251,7 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' -----     -   'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT' -- -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>] --@@ -2273,7 +2273,7 @@                                Device                             -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',                                -- indicating that pipeline caching is disabled, or the handle of a valid-                               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+                               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>                                -- object, in which case use of that cache is enabled for the duration of                                -- the command.                                PipelineCache@@ -2281,7 +2281,7 @@                                -- 'RayTracingPipelineCreateInfoNV' structures.                                ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoNV))                             -> -- | @pAllocator@ controls host memory allocation as described in the-                               -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                               -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>                                -- chapter.                                ("allocator" ::: Maybe AllocationCallbacks)                             -> io (Result, ("pipelines" ::: Vector Pipeline))@@ -2606,7 +2606,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- == Valid Usage --@@ -2661,9 +2661,9 @@ --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl> --     feature is not enabled, @flags@ /must/ not include---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     or---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- -   #VUID-VkRayTracingPipelineCreateInfoNV-stage-06232# The @stage@ --     member of at least one element of @pStages@ /must/ be@@ -2713,7 +2713,7 @@ --     not include both --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEFER_COMPILE_BIT_NV' --     and---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     at the same time -- -- == Valid Usage (Implicit)@@ -2724,7 +2724,7 @@ -- -- -   #VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext# @pNext@ /must/ --     be @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT'+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' -- -- -   #VUID-VkRayTracingPipelineCreateInfoNV-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -2784,7 +2784,7 @@     -- pipeline.     groups :: Vector RayTracingShaderGroupCreateInfoNV   , -- | @maxRecursionDepth@ is the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>     -- of shaders executed by this pipeline.     maxRecursionDepth :: Word32   , -- | @layout@ is the description of binding locations used by both the@@ -2808,7 +2808,7 @@   getNext RayTracingPipelineCreateInfoNV{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoNV e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | otherwise = Nothing  instance (Extendss RayTracingPipelineCreateInfoNV es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoNV es) where@@ -3676,7 +3676,7 @@ -- -- -   #VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     feature is not enabled, each member of @pAccelerationStructures@ --     /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --
src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot view
@@ -347,41 +347,41 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV> -- -- -   (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV> -- -- == Issues --@@ -461,7 +461,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs view
@@ -174,7 +174,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot view
@@ -174,7 +174,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs view
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -223,7 +223,7 @@   { -- | #features-representativeFragmentTest# @representativeFragmentTest@     -- indicates whether the implementation supports the representative     -- fragment test. See-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-rep-frag-test Representative Fragment Test>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-rep-frag-test Representative Fragment Test>.     representativeFragmentTest :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot view
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs view
@@ -77,11 +77,11 @@ -- -- == New Variable Decoration ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask OverrideCoverageNV in SampleMask>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask OverrideCoverageNV in SampleMask> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskOverrideCoverageNV SampleMaskOverrideCoverageNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskOverrideCoverageNV SampleMaskOverrideCoverageNV> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_sample_mask_override_coverage Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_sample_mask_override_coverage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs view
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -206,7 +206,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdSetExclusiveScissorNV-None-02031# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusive scissor>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-exclusiveScissor exclusive scissor> --     feature /must/ be enabled -- -- -   #VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034# The@@ -216,11 +216,11 @@ --     inclusive -- -- -   #VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @firstExclusiveScissor@ /must/ be @0@ -- -- -   #VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @exclusiveScissorCount@ /must/ be @1@ -- -- -   #VUID-vkCmdSetExclusiveScissorNV-x-02037# The @x@ and @y@ members of@@ -316,7 +316,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-exclusive-scissor Exclusive Scissor Test>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-exclusive-scissor Exclusive Scissor Test> -- for more information. -- -- If the 'PhysicalDeviceExclusiveScissorFeaturesNV' structure is included@@ -398,7 +398,7 @@ -- -- -   #VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @exclusiveScissorCount@ /must/ be @0@ or @1@ -- -- -   #VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028#
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot view
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs view
@@ -127,7 +127,7 @@ -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV> -- -- == Issues --@@ -190,7 +190,7 @@ -- and y offset values and then atomically OR the updated mask bits into -- the contents of the corresponding footprint texel. ----- >     uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html# 32));+-- >     uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html# 32)); -- >     uint64_t rightMask    = ((0xFF [^] footprint.offset.x) * 0x0101010101010101UL); -- >     uint64_t bottomMask   = 0xFFFFFFFFFFFFFFFFUL >> (8 * footprint.offset.y); -- >     uint64_t bottomRight  = returnedMask & bottomMask & rightMask;@@ -262,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -306,7 +306,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-footprint Texel Footprint Evaluation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-footprint Texel Footprint Evaluation> -- for more information. -- -- If the 'PhysicalDeviceShaderImageFootprintFeaturesNV' structure is
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot view
@@ -127,7 +127,7 @@ -- -- == New SPIR-V Capability ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV> -- -- == Issues --@@ -190,7 +190,7 @@ -- and y offset values and then atomically OR the updated mask bits into -- the contents of the corresponding footprint texel. ----- >     uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html# 32));+-- >     uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html# 32)); -- >     uint64_t rightMask    = ((0xFF [^] footprint.offset.x) * 0x0101010101010101UL); -- >     uint64_t bottomMask   = 0xFFFFFFFFFFFFFFFFUL >> (8 * footprint.offset.y); -- >     uint64_t bottomRight  = returnedMask & bottomMask & rightMask;@@ -262,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs view
@@ -86,17 +86,17 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV> -- -- == Issues --@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot view
@@ -86,17 +86,17 @@ -- -- == New or Modified Built-In Variables ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV> -- -- == Issues --@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs view
@@ -46,9 +46,9 @@ -- == Description -- -- This extension enables support for a new class of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- on--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroups>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroups> -- via the -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GL_NV_shader_subgroup_partitioned.txt GL_NV_shader_subgroup_partitioned> -- GLSL extension and@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_subgroup_partitioned Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_subgroup_partitioned Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -209,7 +209,7 @@ -- -- __RESOLVED__ We are specifying the pipeline stage to be between the -- final--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT') -- and before the first stage used for fragment processing -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'),@@ -270,7 +270,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -397,7 +397,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdBindShadingRateImageNV-None-02058# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature /must/ be enabled -- -- -   #VUID-vkCmdBindShadingRateImageNV-imageView-02059# If @imageView@ is@@ -525,7 +525,7 @@ -- == Valid Usage -- -- -   #VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature /must/ be enabled -- -- -   #VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067# The@@ -535,12 +535,12 @@ -- -- -   #VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @firstViewport@ /must/ be @0@ -- -- -   #VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069# If --     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @viewportCount@ /must/ be @1@ -- -- == Valid Usage (Implicit)@@ -795,7 +795,7 @@ -- -- -   #VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @viewportCount@ /must/ be @0@ or @1@ -- -- -   #VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055#@@ -879,7 +879,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image Shading Rate Image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image Shading Rate Image> -- for more information. -- -- If the 'PhysicalDeviceShadingRateImageFeaturesNV' structure is included@@ -966,7 +966,7 @@ -- property. -- -- These properties are related to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> -- feature. -- -- == Valid Usage (Implicit)@@ -1122,9 +1122,9 @@ -- -- When using a custom sample ordering, element /j/ in @pSampleLocations@ -- specifies a specific pixel location and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- that corresponds to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage index>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage index> -- /j/ in the multi-pixel fragment. -- -- == Valid Usage@@ -1464,11 +1464,11 @@ -- | 'COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV' specifies that coverage -- samples will be ordered sequentially, sorted first by pixel coordinate -- (in row-major order) and then by--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>. pattern COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV  = CoarseSampleOrderTypeNV 2 -- | 'COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV' specifies that coverage -- samples will be ordered sequentially, sorted first by--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- and then by pixel coordinate (in row-major order). pattern COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = CoarseSampleOrderTypeNV 3 {-# complete COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -209,7 +209,7 @@ -- -- __RESOLVED__ We are specifying the pipeline stage to be between the -- final--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT') -- and before the first stage used for fragment processing -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'),@@ -270,7 +270,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_viewport_array2.hs view
@@ -100,22 +100,22 @@ -- == New or Modified Built-In Variables -- -- -   (modified)---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer> -- -- -   (modified)---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmask ViewportMaskNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmask ViewportMaskNV> -- -- == New Variable Decoration ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layer ViewportRelativeNV in Layer>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer ViewportRelativeNV in Layer> -- -- == New SPIR-V Capabilities ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV> ----- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV>+-- -   <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV> -- -- == Version History --@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_array2 Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_array2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs view
@@ -259,7 +259,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -511,7 +511,7 @@ -- = Description -- -- These values are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-viewport-swizzle Viewport Swizzle>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport-swizzle Viewport Swizzle>. -- -- = See Also --
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot view
@@ -259,7 +259,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs view
@@ -58,7 +58,7 @@ -- == New Structures -- -- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',---     'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- --     -   'Win32KeyedMutexAcquireReleaseInfoNV' --@@ -226,7 +226,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot view
@@ -58,7 +58,7 @@ -- == New Structures -- -- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',---     'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- --     -   'Win32KeyedMutexAcquireReleaseInfoNV' --@@ -226,7 +226,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs view
@@ -104,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -245,7 +245,7 @@ data PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM   { -- | #limits-fragmentdensityoffsetgranularity#     -- @fragmentDensityOffsetGranularity@ is the granularity for-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>.+    -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>.     fragmentDensityOffsetGranularity :: Extent2D }   deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -291,7 +291,7 @@ -- = Description -- -- The array elements are given per @layer@ as defined by--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>, -- where index = layer. Each (x,y) offset is in framebuffer pixels and -- shifts the fetch of the fragment density map by that amount. Offsets can -- be positive or negative.@@ -302,13 +302,13 @@ -- chain for the last subpass of a renderpass does not include -- 'SubpassFragmentDensityMapOffsetEndInfoQCOM', or if -- @fragmentDensityOffsetCount@ is zero, then the offset (0,0) is used for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>. -- -- == Valid Usage -- -- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503# --     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets>+--     <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets> --     feature is not enabled or fragment density map is not enabled in the --     render pass, @fragmentDensityOffsetCount@ /must/ equal @0@. --
src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot view
@@ -104,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs view
@@ -150,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_store_ops Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_store_ops Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -104,9 +104,9 @@                                                         ) where  import Data.String (IsString)-import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE_KHR))+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE)) -- No documentation found for TopLevel "VK_ATTACHMENT_STORE_OP_NONE_QCOM"-pattern ATTACHMENT_STORE_OP_NONE_QCOM = ATTACHMENT_STORE_OP_NONE_KHR+pattern ATTACHMENT_STORE_OP_NONE_QCOM = ATTACHMENT_STORE_OP_NONE   type QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs view
@@ -55,7 +55,7 @@ -- -- This extension provides a mechanism for applications to enable driver -- support for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. -- -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation.@@ -225,7 +225,7 @@ -- coordinate system. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates> -- /may/ be different per transform. Supported rates queried from -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR' -- are in the native (rotated) coordinate system. This means that the@@ -248,7 +248,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot view
@@ -55,7 +55,7 @@ -- -- This extension provides a mechanism for applications to enable driver -- support for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. -- -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation.@@ -225,7 +225,7 @@ -- coordinate system. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates> -- /may/ be different per transform. Supported rates queried from -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR' -- are in the native (rotated) coordinate system. This means that the@@ -248,7 +248,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -115,7 +115,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -115,7 +115,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QNX_screen_surface.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -226,7 +226,7 @@                           ScreenSurfaceCreateInfoQNX                        -> -- | @pAllocator@ is the allocator used for host memory allocated for the                           -- surface object when there is no more specific allocator available (see-                          -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                          -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                           ("allocator" ::: Maybe AllocationCallbacks)                        -> io (SurfaceKHR) createScreenSurfaceQNX instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs view
@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -335,7 +335,7 @@ -- -- -   #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04603# --     @pDescriptorTypes@ /must/ not contain---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot view
@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/SPIRVRequirements.hs view
@@ -29,11 +29,13 @@ import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..))-import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(..))+import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..)) import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..)) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..)) import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV(..))-import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR(..))+import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures(..)) import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(..)) import Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV(..)) import Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV(..))@@ -45,6 +47,7 @@ import Vulkan.Core12 (PhysicalDeviceVulkan12Features(..)) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..))+import Vulkan.Core13 (PhysicalDeviceVulkan13Features(..)) import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)) import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME)@@ -532,17 +535,8 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "SPV_EXT_demote_to_helper_invocation" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]+  "SPV_EXT_demote_to_helper_invocation" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]   "SPV_KHR_fragment_shading_rate" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -566,13 +560,8 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "SPV_KHR_non_semantic_info" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]+  "SPV_KHR_non_semantic_info" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]   "SPV_EXT_shader_image_int64" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -584,17 +573,8 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "SPV_KHR_terminate_invocation" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]+  "SPV_KHR_terminate_invocation" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]   "SPV_KHR_multiview" ->     (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "SPV_KHR_workgroup_memory_explicit_layout" -> (,)@@ -619,13 +599,8 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "SPV_KHR_subgroup_uniform_control_flow" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]+  "SPV_KHR_subgroup_uniform_control_flow" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]   "SPV_EXT_shader_atomic_float_min_max" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -656,17 +631,8 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "SPV_KHR_integer_dot_product" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]+  "SPV_KHR_integer_dot_product" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]   _ -> ([], [])  spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -2345,18 +2311,20 @@                              }     ]   "DemoteToHelperInvocationEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0                                }     ]     [ RequireDeviceFeature       { featureName   = "shaderDemoteToHelperInvocation"-      , checkFeature  = \PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { shaderDemoteToHelperInvocation } ->+      , checkFeature  = \PhysicalDeviceVulkan13Features { shaderDemoteToHelperInvocation } ->                           shaderDemoteToHelperInvocation-      , enableFeature = \_ ->-        PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { shaderDemoteToHelperInvocation = True }+      , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+                          PhysicalDeviceVulkan13Features { shaderDemoteToHelperInvocation = True, .. }       }+    , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -2457,68 +2425,76 @@                              }     ]   "DotProductInputAllKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0                                }     ]     [ RequireDeviceFeature       { featureName   = "shaderIntegerDotProduct"-      , checkFeature  = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->-                          shaderIntegerDotProduct-      , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+      , checkFeature  = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+      , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+                          PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. }       }+    , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "DotProductInput4x8BitKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0                                }     ]     [ RequireDeviceFeature       { featureName   = "shaderIntegerDotProduct"-      , checkFeature  = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->-                          shaderIntegerDotProduct-      , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+      , checkFeature  = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+      , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+                          PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. }       }+    , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "DotProductInput4x8BitPackedKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0                                }     ]     [ RequireDeviceFeature       { featureName   = "shaderIntegerDotProduct"-      , checkFeature  = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->-                          shaderIntegerDotProduct-      , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+      , checkFeature  = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+      , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+                          PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. }       }+    , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "DotProductKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0                                }     ]     [ RequireDeviceFeature       { featureName   = "shaderIntegerDotProduct"-      , checkFeature  = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->-                          shaderIntegerDotProduct-      , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+      , checkFeature  = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+      , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+                          PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. }       }+    , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME                              , deviceExtensionMinVersion = 0
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 203+pattern HEADER_VERSION = 204   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 203+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 204   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.15+version:        3.16 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -247,6 +247,37 @@       Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore       Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout       Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model+      Vulkan.Core13+      Vulkan.Core13.Enums+      Vulkan.Core13.Enums.AccessFlags2+      Vulkan.Core13.Enums.FormatFeatureFlags2+      Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits+      Vulkan.Core13.Enums.PipelineStageFlags2+      Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits+      Vulkan.Core13.Enums.RenderingFlagBits+      Vulkan.Core13.Enums.SubmitFlagBits+      Vulkan.Core13.Enums.ToolPurposeFlagBits+      Vulkan.Core13.Handles+      Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state+      Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2+      Vulkan.Core13.Promoted_From_VK_EXT_image_robustness+      Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block+      Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control+      Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback+      Vulkan.Core13.Promoted_From_VK_EXT_private_data+      Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation+      Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control+      Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment+      Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr+      Vulkan.Core13.Promoted_From_VK_EXT_tooling_info+      Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2+      Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering+      Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2+      Vulkan.Core13.Promoted_From_VK_KHR_maintenance4+      Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product+      Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation+      Vulkan.Core13.Promoted_From_VK_KHR_synchronization2+      Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory       Vulkan.CStruct.Extends       Vulkan.CStruct.Utils       Vulkan.Dynamic@@ -418,6 +449,7 @@       Vulkan.Extensions.VK_KHR_get_memory_requirements2       Vulkan.Extensions.VK_KHR_get_physical_device_properties2       Vulkan.Extensions.VK_KHR_get_surface_capabilities2+      Vulkan.Extensions.VK_KHR_global_priority       Vulkan.Extensions.VK_KHR_image_format_list       Vulkan.Extensions.VK_KHR_imageless_framebuffer       Vulkan.Extensions.VK_KHR_incremental_present